1

こんにちは私はオブジェクトの2つのArrayListを持っており、それを1つのリストとしてマージする必要があります。これが私の要件です

私のfirstList

ListA

{StaffFirstName=f2, resourceId=2, totalcost=18055.0, totalPercentageInvolvment=550, ResourceCost=2300, staffRole=tl}

およびlistB

{sixthmonth=60, fourthmonth=40, firstmonth=10, fifthmonth=50, secondmonth=20, `thirdmonth=30}`

結果が必要です

結果

{StaffFirstName=f2, resourceId=2, totalcost=18055.0, totalPercentageInvolvment=550, ResourceCost=2300, staffRole=tl, sixthmonth=60, fourthmonth=40, firstmonth=10, fifthmonth=50, secondmonth=20, thirdmonth=30}

編集!

実際、私の両方のリストはarrayListなので、私のlistAは

{StaffFirstName=f2, resourceId=2, totalcost=18055.0, totalPercentageInvolvment=550, ResourceCost=2300, staffRole=tl}
{StaffFirstName=demo35, resourceId=3, totalcost=19625.0, totalPercentageInvolvment=785, ResourceCost=2500, staffRole=sweeper}

リストBは

{sixthmonth=100, fourthmonth=30, firstmonth=40, fifthmonth=25, secondmonth=100, thirdmonth=90}
{sixthmonth=100, fourthmonth=30, firstmonth=40, fifthmonth=25, secondmonth=100, thirdmonth=90}

結果は次のようになります

{StaffFirstName=f2, resourceId=2, totalcost=18055.0, totalPercentageInvolvment=550, ResourceCost=2300, staffRole=tl, sixthmonth=60, fourthmonth=40, firstmonth=10, fifthmonth=50, secondmonth=20, thirdmonth=30}
{StaffFirstName=demo35, resourceId=3, totalcost=19625.0, totalPercentageInvolvment=785, ResourceCost=2500, staffRole=sweeper, sixthmonth=100, fourthmonth=30, firstmonth=40, fifthmonth=25, secondmonth=100, thirdmonth=90}

つまり、2つのリストの各行に、行ごとに追加する必要があります。関数を使用するaddAll場合、2つのリストは次のように追加します

{StaffFirstName=f2, resourceId=2, totalcost=18055.0, totalPercentageInvolvment=550, ResourceCost=2300, staffRole=tl}
{StaffFirstName=demo35, resourceId=3, totalcost=19625.0, totalPercentageInvolvment=785, ResourceCost=2500, staffRole=sweeper}
{sixthmonth=60, fourthmonth=40, firstmonth=10, fifthmonth=50, secondmonth=20, thirdmonth=30}
{sixthmonth=100, fourthmonth=30, firstmonth=40, fifthmonth=25, secondmonth=100, thirdmonth=90}. But i need to append the two list row wise. Is it possible?
4

4 に答える 4

9

与えられた:

   List<MyClass> listA, listB;

これを試して:

   List<MyClass> union = new ArrayList<MyClass>();
   union.addAll( listA );
   union.addAll( listB );

編集 (Java 8 以降)

Java 8 以降では、ストリームを使用して 1 つの式でリストを結合できます。

List<MyClass> union = Stream.concat( listA.stream(), listB.stream())
            .collect( Collectors.toList());
于 2012-07-10T13:16:57.163 に答える
3

あなたが持っているものがArrayList(出力から)であるかどうかはよくわかりませんが、それでも、それがCollectionインターフェイスを実装するクラスである場合addAll、正確なクラスに関係なくメソッドを使用できます(オブジェクトが同じタイプ)。

http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#addAll(java.util.Collection , T...)

于 2012-07-10T13:18:20.877 に答える
2

これらが同じ型を含む ArrayList<> オブジェクトである場合、これを使用できます。

list1.addAll(list2);

そして、それはあなたが望むものに対してうまくいくはずです。

于 2012-07-10T13:16:26.657 に答える
0

Type は配列の型です....

 Type[] concat(Type[] listA, Type[] listB) 
     {
       Type[] list= new Type[listA.length+listB.length];
       System.arraycopy(listA, 0, list, 0, listA.length);
       System.arraycopy(listB, 0, list, listA.length, listB.length);

       return list;
     }
于 2012-07-10T13:19:54.573 に答える