这与仅删除重复项略有不同(您可以使用LinkedHashSet
来完成)。如果我在 Java 中有一个这样的数组,它是从 byte[]
数组获取的,然后转换为 String
数组:
[0,0,0,0,1,1,1,1,0,0,0,0,2,2,2,2,3,3,3,3,0,0,0,0]
有没有办法将其更改为这样的内容:
[0, 1, 0, 2, 3, 0]
我尝试过使用 HashSet
和 LinkedHashSet
,但它没有达到我想要的效果。即使技术上是重复的,不同的 0 组也会保留。非常感谢!
最佳答案
您可能希望循环遍历元素并将不连续的重复元素复制到新集合中:
public class Tester {
public static void main(String[] args){
int[] values = {0,0,0,0,1,1,1,1,0,0,0,0,2,2,2,2,3,3,3,3,0,0,0,0};
List<Integer> output = new ArrayList<Integer>();
if(values.length > 0){
int previous = values[0];
output.add(previous);
for(int value : values){
if(previous != value){
output.add(value);
}
previous = value;
}
}
System.out.println(output); // [0, 1, 0, 2, 3, 0]
}
}
关于java - 如何更改数组以使重复元素仅显示一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641549/