我需要创建一个程序,不仅将 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 可以帮助执行此操作,但我不确定它是否有效。我刚开始编程,所以我不太了解这些东西。
希望有人可以帮助我。
谢谢
我需要创建一个程序,不仅将 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 可以帮助执行此操作,但我不确定它是否有效。我刚开始编程,所以我不太了解这些东西。
希望有人可以帮助我。
谢谢
HashSet<Integer> hs = new HashSet<Integer>();
for(int i=0;i<arr1.length;i++){
hs.add(arr1[i]);
}
以同样的方式处理第二个数组。
hs
不会包含任何重复值。
第 1 步:初始化第三个新数组
第 2 步:迭代两个数组并将所有元素存储在第三个数组中
第 3 步:对第三个数组进行排序
使用以下简单代码:
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
结合
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 中。它将减少重复值。
我将为您提供通用算法,然后由您自己编写代码。
array1.length+array2.length
<int, boolean>
如果你不知道 HashMap 这是如何初始化它。Get() 将通过其键检索元素, put() 将在您指定的键处放置一个值(在您的情况下为数字)。
<!-- language: java -->
HashMap<int,boolean> map = new HashMap<int,boolean>();
添加ArrayList1
并ArrayList2
生成一个 Single arraylist ArrayList3
。
现在将其转换为
Set Unique_set = new HashSet(Arraylist3);
在独特的集合中,您将获得独特的元素。
笔记
ArrayList允许重复值。Set不允许值重复。希望您的问题得到解决。
如果您需要删除重复项并保留插入项目的顺序,则 可以使用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
如果您不需要保留插入顺序,可以将 set 的实现更改为HashSet:
Set<Integer> set = new HashSet<Integer>();
试试这个:
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());
}