zoukankan      html  css  js  c++  java
  • 用HashSet查找两个int数组中的相同元素

    其实用两个循环嵌套就可以实现,但这里只是为了演示HashSet的去重功能。

    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Set;

    import com.sun.java_cup.internal.internal_error;

    public class FindSameElements {
       
       
        /**
         * 获取两个整型数组之间的相同元素集合
         * @param array1 参数数组1
         * @param array2 参数数组2
         * @return 两个数组之间相同的元素
         */
        public static HashSet findSame(int array1[] , int array2[]){
            HashSet result = new HashSet();//重复元素结果集合
            HashSet set = new HashSet();//利用HashSet来寻找重复元素
           
            for(int i = 0 ;i < array1.length ; i++){
                set.add(array1[i]);;//把array1添加到set,有过滤作用
            }
           
            int[] temp = dropSame(array2);
           
            for( int i = 0; i < temp.length ; i++){
                if(!set.add(temp[i])){//若有重复元素,add方法返回false
                    result.add(temp[i]);//将重复出现的元素加入结果集合
                }
            }
            return result;
        }
       
        /**
         * 去掉数组内部重复元素
         * @param array
         * @return
         */
        public static int[] dropSame(int[] array){
            int[] arr = new int[array.length];
            HashSet set = new HashSet();
            List list = new ArrayList();
            for(int i = 0; i < array.length ; i++){
                set.add(array[i]);//用set去掉array中重复的元素
            }
            list.addAll(set);
            for(int i = 0 ; i < list.size() ; i++){
                arr[i] = list.get(i);
            }
            return arr;
        }
       
       
       
        public static void main(String[] args) {
            int a[] = {1,6,2,8,5,8,6,9,0};
            int b[] = {4,5,4,8,7,6,2,0};
           
            //获取重复元素集合
            HashSet result = findSame(a, b);
            //遍历输出result元素
            for(Object o : result){
                System.out.println(o+"");
            }
           
        }
    }

     

    宝贝网址:

  • 相关阅读:
    WPF之Binding基础八 使用Linq数据作为Binding的源
    WPF之Binding基础七 使用XML数据作为Binding的源
    WPF之Binding基础六 使用ADO.NET作为Binding的数据源
    WPF之Binding基础五 使用集合对象作为列表控件的ItemSource
    WPF之Binding基础四 使用DataContext作为Binding的源
    解决 VS的IISExpress localhost可以访问,127.0.0.1和本机ip访问不了(错误400)
    c# 使用特性封装提供额外行为Validate验证
    c# 反射调用方法、获取设置值、好处和局限性
    c# 反射加读取类、方法、特性、破坏单例
    linq to object使用
  • 原文地址:https://www.cnblogs.com/W203654/p/2528257.html
Copyright © 2011-2022 走看看