用Java组合2个数组

时间:2013-10-08 05:38:13

标签: java

我需要创建一个程序,不仅可以将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可以帮忙执行此操作,但我不确定它是否有效。我刚开始编程,所以我不太了解这些东西。

希望有人可以帮助我。

由于

9 个答案:

答案 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)

我希望它能帮助你

merge sort algorithm

merge sort code

enter image description here

答案 5 :(得分:0)

我将给你一般的算法,我会留给你编码。

  1. 创建一个大小等于array1.length+array2.length
  2. 的新数组(称为结果)
  3. 创建类型为<int, boolean>
  4. 的散列图
  5. 在遍历数组时,在将数字复制到“结果”之前检查数字是否存在于hashmap中(如果布尔值为true则存在)。如果不是您可以安全地复制到结果中,请将该数字的布尔值翻转为true。
  6. 当你到达第一个阵列的末尾时。将第二个循环的索引变量设置为等于第一个数组的长度,然后重复步骤3.
  7. 如果你不知道HashMap,这是如何初始化它。 Get()将通过其键检索元素,put()将在您指定的键上放置一个值(在您的情况下将是数字)。

    <!-- language: java -->
    HashMap<int,boolean> map = new HashMap<int,boolean>();
    

答案 6 :(得分:0)

添加ArrayList1ArrayList2并生成单个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());
    }