JAVA中是否存在具有相同和不同值的排序数组?
列表未排序,但允许您存储相同的值。集合已排序,但不允许放置相同的vlue。什么数组同时提供这两个属性:排序和存储相同的值
比如
输入:
32, 3, 8, 1, 22, 4, 8, 22
我可以在其中存储输入数据,如:
1, 3, 4, 8, 8, 22, 22, 32
?
你可以在下面搜索框中键入要查询的问题!
列表未排序,但允许您存储相同的值。集合已排序,但不允许放置相同的vlue。什么数组同时提供这两个属性:排序和存储相同的值
比如
输入:
32, 3, 8, 1, 22, 4, 8, 22
我可以在其中存储输入数据,如:
1, 3, 4, 8, 8, 22, 22, 32
?
# 1 楼答案
我想你需要一个分类的多集。Java SE库不提供这样的类,但Guava库提供:
请注意,基于树的多集具有
O(logN)
操作,而O(N)
或更糟糕的插入或删除操作(如果您试图保持常规列表或数组的顺序)# 2 楼答案
您可以使用正常的
ArrayList<E>
实现,并使用以下命令进行排序:Collections.sort(yourList);
# 3 楼答案
这很容易做到:你可以用^{} 对^{} 实例进行排序——你现在有了一个排序后的集合,它也可以包含重复的值