Combine 2 arrays in Java
我需要创建一个程序,不仅可以将2个数组放在一起,而且还可以避免打印两次在数组上重复的数字。
例如:
我听说Hashshet可以帮忙执行此操作,但我不确定它是否有效。 我刚刚开始编程,所以我不知道很多这样的东西。
希望有人可以帮助我。
谢谢
1 2 3 4 5 | HashSet<Integer> hs = new HashSet<Integer>(); for(int i=0;i<arr1.length;i++){ hs.add(arr1[i]); } |
以同样的方式做第二个数组。
试试这个:
1 2 3 4 5 6 7 8 9 | String arr[] = {"1","2","3","4"}; String arr2[] = {"1","2","3","4","5"}; List<String> numList = new ArrayList<String>(Arrays.asList(arr)); Collections.addAll(numList, arr2); Set<String> aSet = new HashSet<String>(numList); Iterator iterator = aSet.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } |
如果需要删除重复项并保留插入项的顺序,则可以使用LinkedHashSet:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Set<Integer> set = new LinkedHashSet<Integer>(); for(int i = 0;i < firstArray.length; i++){ set.add(firstArray[i]); } // set now contains 1,2,3,4,5 for(int i = 0;i < secondArray.length; i++){ set.add(secondArray[i]); } // set now contains 1,2,3,4,5,6,7,8 |
如果您不需要保留插入顺序,则可以将set的实现更改为HashSet:
1 | Set<Integer> set = new HashSet<Integer>(); |
添加
现在将其转换为
在独特的设置中,您将获得独特的元素。
注意
ArrayList允许复制值。 Set不允许值重复。希望你的问题得到解决。
我将给你一般的算法,我会留给你编码。
如果你不知道HashMap,这是如何初始化它。 Get()将通过其键检索元素,put()将在您指定的键上放置一个值(在您的情况下将是数字)。
1 2 | <!-- language: java --> HashMap<int,boolean> map = new HashMap<int,boolean>(); |
我希望它能帮助你
合并排序算法
合并排序代码
结合
1 2 3 4 5 |
然后将所有数组值添加到Set中。它会减少重复值。
使用以下简单代码:
1 2 3 4 5 6 | List<Integer> arr1=new ArrayList<>(); //1 2 3 4 5 List<Integer> arr2=new ArrayList<>(); // 5 6 7 8 Set<Integer> res=new HashSet<>(); res.addAll(arr1); res.addAll(arr2); System.out.println(res); //1 2 3 4 5 6 7 8 |
第1步:初始化第三个新数组
步骤2:迭代两个数组并将所有元素存储在第三个数组中
第3步:排序第三个数组