Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法:
1,使用set(最好想到),set本身就是不重复的集合;
package Array_test;
import java.util.HashSet;
import java.util.Set;
public class delete_repeat_1 {
public static void main(String[] args) {
int array[] = new int[]{1,2,1,1,2,3,4,4,5};
Set set = new HashSet();//定义一个set集合
int count = 0 ;//set集合元素个数
for(int i = 0 ; i < array.length ; i++){
set.add(array[i]);
}
Object arr[] = set.toArray();
count = arr.length;//将set转换成数组
System.out.println(set);
System.out.println("set集合元素个数:"+count);
}
}
2,使用list列表,依次遍历数组,调用list中的contains方法判断当前元素是否在list中,如果不在,即加入list中,这样就将重复元素干掉了
package Array_test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class delete_repeat_1 {
public static void main(String[] args) {
int array[] = new int[]{1,2,1,1,2,3,4,4,5};
List list = new ArrayList();
int count = 0 ;
for(int i = 0 ; i < array.length ; i++){
if( ! list.contains(array[i])){
list.add(array[i]);
count++;
}
}
System.out.println(list);
System.out.println("list集合元素个数:"+count);
}
}
3,若使有序数组删除重复元素,不允许用Set , List ,LinkedHashSet等方法时,要自己编写for循环实现;
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
package Array_test;
public class delete_repeat_1 {
public static void main(String[] args) {
int array[] = new int[]{1,1,1,2,3,4,4,5};
int index = 0 ;
array[index] = array[0];//将第一个数组元素保留,比较时时从第二个元素开始比较;
for(int i = 1 ; i < array.length ; i++){
if( array[index] != array[i]){
array[++index] = array[i];
}
}
index++ ;//数组元素个数是index+1个
//此时array数组后面依然会有4 4 5 三个元素,但是我们输出截止到index;
for(int i = 0 ; i<index ; i++ )
System.out.println(array[i]);
System.out.println("array集合元素个数:"+ index);
}
}
Java删除数组中重复元素还会有其他方法,比比皆是,这里只列出了三种简单易懂的方法供大家使用。