如何从数组中获取独特的物品?
我是Java初学者,我发现了一些关于这个主题的主题,但没有一个对我有用。我有一个这样的数组:
int[] numbers = {1, 1, 2, 1, 3, 4, 5};
我需要得到这个输出:
1, 2, 3, 4, 5
该数组中的每个项目只需一次。
但是如何获得它?
我是Java初学者,我发现了一些关于这个主题的主题,但没有一个对我有用。我有一个这样的数组:
int[] numbers = {1, 1, 2, 1, 3, 4, 5};
我需要得到这个输出:
1, 2, 3, 4, 5
该数组中的每个项目只需一次。
但是如何获得它?
最简单的解决方案,无需编写自己的算法:
Integer[] numbers = {1, 1, 2, 1, 3, 4, 5};
Set<Integer> uniqKeys = new TreeSet<Integer>();
uniqKeys.addAll(Arrays.asList(numbers));
System.out.println("uniqKeys: " + uniqKeys);
设置接口保证值的唯一性。TreeSet 还会对此值进行排序。
您可以使用 Set<Integer>
并节省大量时间,因为它包含独特的元素。如果不允许使用 Java 集合中的任何类,请对数组进行排序并对唯一元素进行计数。您可以手动对数组进行排序,也可以使用 Arrays#sort
。
我将发布代码:Set<Integer>
int[] numbers = {1, 1, 2, 1, 3, 4, 5};
Set<Integer> setUniqueNumbers = new LinkedHashSet<Integer>();
for(int x : numbers) {
setUniqueNumbers.add(x);
}
for(Integer x : setUniqueNumbers) {
System.out.println(x);
}
请注意,我更喜欢使用LinkedHashSet
作为Set实现,因为它保持元素插入方式的顺序。这意味着,如果您的数组是,则输出将是 而不是 。{2 , 1 , 2}
2, 1
1, 2