我需要创建一个程序,不仅可以将2个数组放在一起,还可以避免在数组上重复打印两次数字。
例如:
1,2,3,4,5 //Array 1
5,6,7,8,4 //Array 2
1,2,3,4,5,6,7,8 //Array 1 & 2 together
我听说Hashshet可以帮忙执行此操作,但我不确定它是否有效。我刚开始编程,所以我不太了解这些东西。
希望有人可以帮助我。
由于
答案 0 :(得分:1)
HashSet<Integer> hs = new HashSet<Integer>();
for(int i=0;i<arr1.length;i++){
hs.add(arr1[i]);
}
以同样的方式为第二个数组做。
hs
不会包含任何重复值。
答案 1 :(得分:0)
第1步:初始化第三个新数组
步骤2:迭代两个数组并存储第三个数组中的所有元素
第3步:排序第三个数组
答案 2 :(得分:0)
使用以下简单代码:
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
答案 3 :(得分:0)
联合
int lengthA = arrayA.length;
int lengthB = arrayB.length;
Sample[] result = new Sample[arrayA + arrayB];
System.arraycopy(arrayA, 0, result, 0, lengthA);
System.arraycopy(arrayA, 0, result, lengthA, lengthB);
然后将所有数组值添加到Set中。它会减少重复值。
答案 4 :(得分:0)
答案 5 :(得分:0)
我将给你一般的算法,我会留给你编码。
array1.length+array2.length
<int, boolean>
如果你不知道HashMap,这是如何初始化它。 Get()将通过其键检索元素,put()将在您指定的键上放置一个值(在您的情况下将是数字)。
<!-- language: java -->
HashMap<int,boolean> map = new HashMap<int,boolean>();
答案 6 :(得分:0)
添加ArrayList1
,ArrayList2
并生成单个arraylist ArrayList3
。
现在将其转换为
Set Unique_set = new HashSet(Arraylist3);
在独特的集合中,您将获得独特的元素。
请注意
ArrayList 允许复制值。 设置不允许值重复。希望你的问题得到解决。
答案 7 :(得分:0)
如果您需要删除重复项并保留插入项目的顺序,则可以使用LinkedHashSet:
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
如果您不需要保留广告订单,则可以将集合的实现更改为HashSet:
Set<Integer> set = new HashSet<Integer>();
答案 8 :(得分:0)
试试这个:
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());
}