问题是这样的:
我有一个已知的数组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; }}