列表未排序,但允许您存储相同的值。 Set已排序,但不允许使用相同的vlue。什么数组提供两个属性:排序和存储相同的值?
例如
输入:
32, 3, 8, 1, 22, 4, 8, 22
我可以存储输入数据,如:
1, 3, 4, 8, 8, 22, 22, 32
答案 0 :(得分:1)
这可以非常轻松地完成:您可以使用List
对Collections.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库执行:
SortedMultiset
TreeMultiset
请注意,如果您尝试保留传统列表或数组的顺序,则基于树的多集合具有O(logN)
个操作,与O(N)
进行比较,或者更糟糕的是插入或删除。