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

时间:2015-12-13 13:40:37

标签: java arrays sorting

列表未排序,但允许您存储相同的值。 Set已排序,但不允许使用相同的vlue。什么数组提供两个属性:排序和存储相同的值?

例如

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

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

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

3 个答案:

答案 0 :(得分:1)

这可以非常轻松地完成:您可以使用ListCollections.sort(yourList)实例进行排序 - 您现在拥有一个也可以包含重复值的已排序集合。

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);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我认为你需要一个有序的多重集。 Java SE库不提供这样的类,但是Guava库执行:

请注意,如果您尝试保留传统列表或数组的顺序,则基于树的多集合具有O(logN)个操作,与O(N)进行比较,或者更糟糕的是插入或删除。