当前位置: 首页 > 知识库问答 >
问题:

按名称排序对象[][]Java

景英杰
2023-03-14

我最近开始编程,所以这可能会变得很容易。我在排序我的对象时遇到了困难。我有一个带有姓名、出生日期和电话号码的对象。就像Object[0][0]="John"Object[0][1]="10/10/2010"Object[0][0]="900000000"与其他几个人一样。所以我的困难是按姓名排序并保留出生日期和电话号码以及姓名。谢谢。

共有2个答案

裴永年
2023-03-14

下面是我的标准排序示例,它碰巧使用了Person对象:

/*
**  Use the Collections API to sort a List for you.
**
**  When your class has a "natural" sort order you can implement
**  the Comparable interface.
**
**  You can use an alternate sort order when you implement
**  a Comparator for your class.
*/
import java.util.*;

public class Person implements Comparable<Person>
{
    String name;
    int age;

    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

    public int getAge()
    {
        return age;
    }

    public String toString()
    {
        return name + " : " + age;
    }

    /*
    **  Implement the natural order for this class
    */
    public int compareTo(Person p)
    {
        return getName().compareTo(p.getName());
    }

    static class AgeComparator implements Comparator<Person>
    {
        public int compare(Person p1, Person p2)
        {
            return p1.getAge() - p2.getAge();
        }
    }

    public static void main(String[] args)
    {
        List<Person> people = new ArrayList<Person>();
        people.add( new Person("Homer", 38) );
        people.add( new Person("Marge", 35) );
        people.add( new Person("Bart", 15) );
        people.add( new Person("Lisa", 13) );

        // Sort by natural order

        Collections.sort(people);
        System.out.println("Sort by Natural order");
        System.out.println("\t" + people);

        // Sort by reverse natural order

        Collections.sort(people, Collections.reverseOrder());
        System.out.println("Sort by reverse natural order");
        System.out.println("\t" + people);

        //  Use a Comparator to sort by age

        Collections.sort(people, new Person.AgeComparator());
        System.out.println("Sort using Age Comparator");
        System.out.println("\t" + people);

        //  Use a Comparator to sort by descending age

        Collections.sort(people, Collections.reverseOrder(new Person.AgeComparator()));
        System.out.println("Sort using Reverse Age Comparator");
        System.out.println("\t" + people);
    }
}
严宇
2023-03-14

合乎逻辑的做法是创建一个包含姓名、出生日期和电话号码的Person类。然后,不要使用类型不安全的2D Object数组,而是使用1D数组-Person[]

如果您的Person类将实现可比

 类似资料:
  • 问题内容: 我已经寻找了一段时间,想要一种对Javascript对象进行排序的方法,如下所示: 并按名称的字母顺序排序以获得: 我找不到任何可以做到这一点的代码。谁能给我些帮助吗? 问题答案: 根据定义,键在对象中的顺序是未定义的 ,因此您可能无法以适应未来发展的方式进行操作。相反,您应该考虑在实际向用户显示对象时对这些键进行排序。无论它在内部使用什么排序顺序都没有关系。 按照惯例,大多数浏览器将

  • 本文向大家介绍C程序按字母顺序对名称进行排序,包括了C程序按字母顺序对名称进行排序的使用技巧和注意事项,需要的朋友参考一下 用户必须输入名称的数量,并且需要借助strcpy()函数按字母顺序对这些名称进行排序。 字符(或)字符集合的数组称为字符串。 声明 以下是数组的声明- 例如,char string [50]; 长度为50个字符的字符串。 初始化 使用单字符常量 使用字符串常量 访问 有一个控

  • 我有一个班的学生有以下领域: 字段“状态”可以有2个值:1。现在,2。缺席的 然后我有一个可观察的列表: 因此,我将学生存储在这个列表中。每个学生都有出席或缺席状态。 我需要按状态对这个观察列表进行排序。我希望目前状态的学生在该列表中名列第一。 有什么建议吗? 如果有任何帮助,我将不胜感激。

  • 我试图排序我的对象数组,这些对象具有按日期最新的第一个和最新的最后一个日期值。 我有以下代码: 请注意,JS Date是新Date()接受的有效日期/格式。 我可以先订购最旧的,但不能先订购最新的,我尝试了以下方法: 当前我不能先按最新日期排序,它只能先按最早的日期排序。 谢啦

  • 问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对

  • 问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。