java消除数组中重复出现的值

java消除数组中重复出现的值

问:java删除数组中重复的数。
  1. 答:最直接的方式, 用嵌套循环, 从数组第一个元素开始与该元素之后的所有元素比较, 如果发现相同的,则删除后者
    这是方法:
    for (i=0; i < 数组长度; i++)
    {
    int temp = 元素[i];
    for (int j = i +1; j < 数组长度; j++)
    {
    if (temp == 元素[j])
    删除元素[j];
    }
    }
  2. 答:这个简单点的方法就是,把这个数组的数字全部put进一个Map里面。重复的自然会被替换掉。最后把Map里面的key值再输出来就完全没有重复了。
问:java中数组怎么删除数组中重复的数
  1. 答:通过HashSet剔除
        // 删除ArrayList中重复元素,add进去顺序就变了不考虑顺序的话可以使用
        public static void removeDuplicate1(List list) {
            HashSet h = new HashSet(list);
            list.clear();
            list.addAll(h);
            System.out.println(list);
        }
  2. 答:import java.util.Arrays;
    public class Test{
    public static void main(String[] args) {
    int[] arr={1,2,2,3,4,4,5};
    int [] temp=new int[0];
    for(int i:arr){
    if(!containArr(i, temp)){
    temp=addArr(i, temp);
    }
    }
    for(int i:temp)
    System.out.println(i);
    }
    public static int[] addArr(int n,int [] temp){
    int [] tempArr=Arrays.copyOf(temp, temp.length+1);
    tempArr[temp.length]=n;
    return tempArr;
    }
    public static boolean containArr(int n,int[] arr){
    boolean flag=false;
    for(int i:arr){
    if(i==n){
    flag=true;
    break;
    }
    }
    return flag;
    }
    }
问:java中怎么样子找出数组中重复的数,并去除
  1. 答: 
     public static void main(String[] args) {
     //可以换种思路,把数组放到set里面(set的值不会重复)就可以去重了
    Integer[] arr = {85,4,2,6,11,4,5,8,9};
    Set<Integer> set = new HashSet<Integer>();
     for(Integer i : arr)
     set.add(i);
     for(Object j: set.toArray())
     System.out.print(j + " ");
     }
  2. 答:使用Set集合处理即可,因为Set集合有特性,自动去除重复的元素;
    只要循环数组,添加到set中就可以实现了。
  3. 答:思想大概就是新建一个数组,然后把原数组的值放入新数组,检查有没有已存在的,放不进去的就是重复的,新数组就是你需要的
  4. 答:恩,把数组转换成set集合再转回去就行,
  5. 答:遍历数组,将值放入TreeSet集合,这个集合不允许重复,而且这个效率比较高
java消除数组中重复出现的值
下载Doc文档

猜你喜欢