当前位置: 代码迷 >> J2SE >> 关于HashSet数组的比较解决方案
  详细解决方案

关于HashSet数组的比较解决方案

热度:66   发布时间:2016-04-24 00:55:09.0
关于HashSet数组的比较
问题是这样的:

我有一个已知的数组int[] a ={1,2,3,4,5,6}

有一个随机产生的HashSet数组 
Java code
Set<Integer> set = new HashSet<Integer>();                        while (set.size() != 6) {                int randomValue = random.nextInt(33) + 1;                set.add(randomValue);            }


我想让数组a和数组set,进行比较,比较方法是:数组a的第一个值和数组set的第一个值进行比较,数组a的第二个值和数组set的第二个值进行比较,以此类推!如果两个数组一样,就返回true,否则就返回false

请给位给出具体的算法代码!!!

------解决方案--------------------
Java code
import java.util.Arrays;import java.util.HashSet;import java.util.Iterator;import java.util.Random;import java.util.Set;public class Test {    public static void main(String[] args) {        int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };        Set<Integer> set = new HashSet<Integer>();        Random random = new Random();        while (set.size() != 6) {            int randomValue = random.nextInt(33) + 1;            set.add(randomValue);        }        System.out.println(check(arr, set));    }    static boolean check(int[] arr, Set<Integer> set) {        if(arr.length != set.size())            return false;        Iterator<Integer> iterator = set.iterator();        boolean flag = true;        int[] result = new int[arr.length];        while(iterator.hasNext()){            Integer n = iterator.next();            for(int i = 0;i < arr.length;i++){                if(n == arr[i] && result[i] == 0){                    result[i] = 1;                    break;                }            }        }        for(int i = 0;i < result.length && flag;i++)            flag &= (result[i] == 1);        return flag;    }}
  相关解决方案