如何使用集合的addall()方法?

时间:2010-06-16 10:40:16

标签: java list collections merge

我需要用它来合并两个有序的对象列表。

3 个答案:

答案 0 :(得分:18)

来自API:

  

addAll(Collection<? extends E> c):将指定集合中的所有元素添加到此集合中(可选操作)。

以下是使用List的示例,它是一个有序集合:

    List<Integer> nums1 = Arrays.asList(1,2,-1);
    List<Integer> nums2 = Arrays.asList(4,5,6);

    List<Integer> allNums = new ArrayList<Integer>();
    allNums.addAll(nums1);
    allNums.addAll(nums2);
    System.out.println(allNums);
    // prints "[1, 2, -1, 4, 5, 6]"

int[] vs Integer[]

虽然int可自动加载到Integer,但int[]不能“自动执行”到Integer[]

因此,您会得到以下行为:

    List<Integer> nums = Arrays.asList(1,2,3);
    int[] arr = { 1, 2, 3 };
    List<int[]> arrs = Arrays.asList(arr);

相关问题

答案 1 :(得分:3)

Collection all = new HashList();
all.addAll(list1);
all.addAll(list2);

答案 2 :(得分:1)

我正在编写一些android,我发现这非常短而且方便:

    card1 = (ImageView)findViewById(R.id.card1);
    card2 = (ImageView)findViewById(R.id.card2);
    card3 = (ImageView)findViewById(R.id.card3);
    card4 = (ImageView)findViewById(R.id.card4);
    card5 = (ImageView)findViewById(R.id.card5);

    card_list = new ArrayList<>();
    card_list.addAll(Arrays.asList(card1,card2,card3,card4,card5));

与我过去采用的标准方式相比:

    card1 = (ImageView)findViewById(R.id.card1);
    card2 = (ImageView)findViewById(R.id.card2);
    card3 = (ImageView)findViewById(R.id.card3);
    card4 = (ImageView)findViewById(R.id.card4);
    card5 = (ImageView)findViewById(R.id.card5);

    card_list = new ArrayList<>();
    card_list.add(card1) ;
    card_list.add(card2) ;
    card_list.add(card3) ;
    card_list.add(card4) ;
    card_list.add(card5) ;