3

私は2つのリスト文字列が異なりますが、

List<String> A= [1,2,3,4]; 
List<String> B= [1,2,5,6]; 

そして、List C = new Arraylist (); の新しいリスト文字列で、2 つのリストを結合したいと考えています。

2 つのリスト文字列を結合する方法は、次の例のようになります。

    C = [1,2,3,4,5,6];
4

8 に答える 8

4

Collection.addAll()TreeSetを使用して、重複を削除し、結果をソートしたままにします。

Set<String> c = new TreeSet<String>(a); //create a Set with all the elements in a
c.addAll(b); //add all the elements in b
于 2012-12-24T09:57:34.857 に答える
3

このようにします:

listOne.removeAll(listTwo);
listTwo.addAll(listOne);
Collections.sort(listTwo);

並べ替えたくない場合は、3 行目を削除できます。

于 2012-12-24T10:27:13.827 に答える
3

これにより、それらが組み合わされます

combined = new ArrayList<String>();
combined.addAll(A);
combined.addAll(B);

これにより、一意が取得されます

List<String> uniques = new ArrayList<String>(new HashSet<String>(combined));
于 2012-12-24T09:58:33.097 に答える
0

List#addAll両方のリストの結果をマージするには、またはを使用する 2 つの方法がありますSet#addAll。両方の主な違いは、ここで詳しく説明されています: Set と List の違いは何ですか?

リクエストに基づいて、アイテムを繰り返さずに両方のリストをマージする必要がありますSet

List<String> lstA = new ArrayList<String>();
lstA.add("1");
lstA.add("2");
lstA.add("3");
lstA.add("4");
List<String> lstB = new ArrayList<String>();
lstA.add("1");
lstA.add("2");
lstA.add("5");
lstA.add("6");
Set<String> lstC = new LinkedHashSet<String>();
lstC.addAll(A);
lstC.addAll(B);
List<String> lstAB = new ArrayList(lstC);
于 2012-12-24T09:57:26.507 に答える
0

AとBの宣言が間違っているようです。

ただし、2 つのリスト A と B が与えられた場合、それらを C に結合するには、次のコードを使用できます。 C.addAll(A); C.addAll(B);

于 2012-12-24T09:59:12.283 に答える