1

複数のリストを単一のコマンドで連結したい、例えば次のようなことをしたい:

myFirstList.concat(mySecondList).concat(myThirdList);

または多分

List.concat(myFirstList, mySecondList,myThirdList);

つまり、次のようなものが欲しい

List<T> concat(List<T> additional);

のメンバーとしてList(それを持つことはできません、私は推測します... :-( )、または

static <T> List<T> concat(List<T>... lists);

これはより実行可能です。これを含むパッケージはありますか?

ノート:

はい、使用できることはわかってaddAll()いますが、これはブール値を返すため、同じコマンドで繰り返し使用することはできません。

4

2 に答える 2

1

addAll()メソッド を使用します。

List<String> testList1 = new ArrayList<String>();           
testList1.add("one");
testList1.add("two");

List<String> testList2 = new ArrayList<String>();
testList2.add("three");

testList2.addAll(testList1);
//testList2 now has "three","one","two"
于 2013-01-14T11:59:48.163 に答える
0

メソッドを使用してaddAll、このための小さなビルダーを作成できます。

class ListBuilder<T> {
    private List<T> list = new ArrayList<T>();

    public ListBuilder<T> concat(List<T> other) {
        this.list.addAll(other);
        return this;
    }

    public List<T> getAll() {
        return this.list;
    }
}

使用法:

ListBuilder<String> builder = new ListBuilder<String>();
builder.concat(myFirstList).concat(mySecondList).concat(myThirdList);

System.out.println(builder.getAll());
于 2013-01-14T12:05:45.767 に答える