我想用 single 命令连接多个列表,例如做类似的事情:
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()
但是返回一个布尔值,所以你不能在同一个命令中重复使用它。
答案 0 :(得分: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"
答案 1 :(得分: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());