【发布时间】:2011-03-04 09:51:36
【问题描述】:
我需要用它来合并两个有序的对象列表。
【问题讨论】:
-
合并是什么意思?你想做什么?
标签: java list collections merge
我需要用它来合并两个有序的对象列表。
【问题讨论】:
标签: java list collections merge
我正在编写一些 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) ;
【讨论】:
来自 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[] 与Integer[]
虽然int 可以自动装箱到Integer,但int[] 不能“自动装箱”到Integer[]。
因此,您会得到以下行为:
List<Integer> nums = Arrays.asList(1,2,3);
int[] arr = { 1, 2, 3 };
List<int[]> arrs = Arrays.asList(arr);
【讨论】:
int[] <-> Integer[]转换,或者你可以使用Guava的Ints.asList(int...)和addAll到List<Integer>等。如果这是OP想要的,我可以详细说明这些点去做。
Collection all = new HashList();
all.addAll(list1);
all.addAll(list2);
【讨论】: