当前位置: 首页 > 面试题库 >

在Java中按姓氏和名字对对象的ArrayList进行排序

单于耘豪
2023-03-14
问题内容

我有一个基于运动的不同类型球员的arrayList。我需要按姓氏对arrayList中的播放器列表进行排序以开始。如果2个玩家的姓氏相同,则需要按名字对这2个玩家进行排序。示例:格式姓氏姓氏Williams
Robert Phillips Warren Doe John Phillips Mark

输出应为Doe John Phillips Mark Phillips Warren Williams Robert

我现在所拥有的仅按我的代码中的第一个或最后一个atm进行排序。

   public static void sortPlayers(ArrayList playerList) {
    for (int i = 0; i < playerList.size(); i++) {
        for (int j = 0; j < playerList.size(); j++) {
            Collections.sort(playerList, new Comparator() {

                public int compare(Object o1, Object o2) {
                    PlayerStats p1 = (PlayerStats) o1;
                    PlayerStats p2 = (PlayerStats) o2;
                    return p1.getPlayerLastName().compareToIgnoreCase(p2.getPlayerLastName());
                }
            });
        }

    }
}

问题答案:

将比较器更改为:

            public int compare(Object o1, Object o2) {
                PlayerStats p1 = (PlayerStats) o1;
                PlayerStats p2 = (PlayerStats) o2;
                int res =  p1.getPlayerLastName().compareToIgnoreCase(p2.getPlayerLastName());
                if (res != 0)
                    return res;
                return p1.getPlayerFirstName().compareToIgnoreCase(p2.getPlayerFirstName())
            }


 类似资料:
  • 我提示用户输入他的名字、姓氏和年龄。 我使用确认对话框询问用户是否想添加另一个人,然后我显示他输入的名字。 我如何按名字、第二个名字等对这些人进行分类?

  • 问题内容: 我发现的每个示例都是按字母顺序进行的,而我需要按日期对元素进行排序。 我的ArrayList包含其数据成员之一是DateTime对象的对象。在DateTime上,我可以调用以下函数: 因此,我可以做一些比较: 我应该在if块内做什么? 问题答案: 你可以使对象具有可比性: 然后通过调用以下命令对其进行排序: 但是,有时你不想更改模型,例如想要对几个不同的属性进行排序时。在这种情况下,你

  • 问题内容: 我必须创建一种方法,该方法根据电子邮件按字母顺序对对象的 ArrayList 进行排序,然后打印排序后的数组。我在排序时遇到的麻烦。我已经对其进行了研究并尝试使用,但这对我不起作用。我当时是需要一个称为比较器的东西,但无法弄清楚它是如何工作的。我将不得不使用这些东西吗?还是像气泡排序或插入排序这样的东西可以用于这种事情? 这是我到目前为止的代码: 问题答案: 排序部分可以通过实现cus

  • 问题内容: 我有一个包含从上午8:00到下午4:00的时间列表。 当我在输出中显示它时,它似乎没有排序,而当我使用它时,它的排序时间是从1:00 pm到8:00 am。 我如何从8:00 am到4:00 pm排序我的列表? 问题答案: 不要重新发明轮子,而是使用collection(如果允许使用java8,则使用Lambdas)How ??:将列表保留为字符串,但使用Anonymous 比较器 ,

  • 我的一个Java类分配要求我对多维字符串数组进行排序。它还需要输入您是想按名字排序还是按姓氏排序。我不太理解这个问题的措辞,也就是主要的排序和粗体部分,所以我会把它贴在这里。 编写一个程序,使用以下标题对二维数组进行排序: 该方法应先对行执行主排序,然后对列执行主排序。 使用以下数据测试您的程序: 您的程序应该询问您是希望数组按名字排序还是按最后一个sName排序。 数组中的行将包含名字。sort

  • 我有一个名为FullName的列的模型联系人,其中包含例如“John Smith”。 如何按全名列中显示的姓氏排序数据? 对于像“John Smith Doe”这样的长名称,我想按“Doe”这个词对数据进行排序。我使用postgres db