有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA中是否存在具有相同和不同值的排序数组?

列表未排序,但允许您存储相同的值。集合已排序,但不允许放置相同的vlue。什么数组同时提供这两个属性:排序和存储相同的值

比如

输入: 32, 3, 8, 1, 22, 4, 8, 22

我可以在其中存储输入数据,如:

1, 3, 4, 8, 8, 22, 22, 32

?


共 (3) 个答案

  1. # 1 楼答案

    我想你需要一个分类的多集。Java SE库不提供这样的类,但Guava库提供:

    • 接口^{}
    • 基于树的实现^{}

    请注意,基于树的多集具有O(logN)操作,而O(N)或更糟糕的插入或删除操作(如果您试图保持常规列表或数组的顺序)

  2. # 2 楼答案

    您可以使用正常的ArrayList<E>实现,并使用以下命令进行排序: Collections.sort(yourList);

  3. # 3 楼答案

    这很容易做到:你可以用^{}^{}实例进行排序——你现在有了一个排序后的集合,它也可以包含重复的值

    List<Integer> myList = new ArrayList<>();
    myList.add(32);
    myList.add(3);
    myList.add(8);
    myList.add(1);
    myList.add(22);
    myList.add(4);
    myList.add(8);
    myList.add(22);
    
    System.out.println("Unsorted: " + myList);
    
    Collections.sort(myList);
    
    System.out.println("Sorted: " + myList);