如果一个数组中有重复元素,用什么方法可以去重?有其他方法继续更新
一.用List集合实现
int[] str = {5, 6, 6, 6, 8, 8, 7,4};
List<Integer> list = new ArrayList<Integer>();
for (int i=0; i<str.length; i++) {
if(!list.contains(str[i])) {
list.add(str[i]);
}
}
System.out.println("去除重复后的list集合"+list);
输出结果是:
去除重复后的list集合[5, 6, 8, 7, 4]
可以看到可以去除重复的元素,但是没有实现排序功能。
二、输出数组中只出现一次的元素
public class quchong {
public static void main(String[] args) {
int[] arr = new int[] { 1, 2, 3, 4, 5, 1, 2, 3, 2 };
method(arr);
} public static void method(int[] arr) {
for (int i = 0; i < arr.length; i++) { //遍历数组
boolean flag = true; //定义一个标记
for (int j = 0; j < arr.length; j++) {
if (j == i) {
continue; // 如果和自己遍历则跳出当前循环,继续下一次循环。
} //如果外循环的元素只要有一个与内循环的元素相等,标记为false,不输出
if (arr[i] == arr[j]) {
flag = false;
}
}
//输出所有没被标记的元素,即为只出现一次的元素
if (flag) {
System.out.println(arr[i]);
}
}
}
}