如何在java的通用列表中添加两个相同类型的项目列表

时间:2019-03-28 14:41:54

标签: java

我有一个接受 <plugins> <plugin> <groupId>com.github.warmuuh</groupId> <artifactId>libsass-maven-plugin</artifactId> <version>0.2.10-libsass_3.5.3</version> <executions> <execution> <phase>generate-resources</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> <configuration> <outputPath>${project.build.directory}/generated-sources/resources</outputPath> <inputPath>${basedir}/src/main/resources</inputPath> <!--<includePath>${basedir}/src/sass-plugins/</includePath>--> <outputStyle>nested</outputStyle> <generateSourceComments>false</generateSourceComments> <generateSourceMap>false</generateSourceMap> <sourceMapOutputPath>${project.build.directory}/generated-sources/resources </sourceMapOutputPath> <omitSourceMapingURL>true</omitSourceMapingURL> <embedSourceMapInCSS>false</embedSourceMapInCSS> <embedSourceContentsInSourceMap>false</embedSourceContentsInSourceMap> <precision>5</precision> <enableClasspathAwareImporter>true</enableClasspathAwareImporter> <copySourceToOutput>false</copySourceToOutput> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/resources</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> 的方法,我想添加两个列表,我想在单个通用列表中添加两个列表,但是我无法添加,我试图创建一个通用类型列表,但不接受。

>

我尝试过:

List<?>

我的功能是:

List<Object> list = new ArrayList<>();
list.add(model.getfirstlist().getItems());                      
list.add(model.getSecondlist().getItems());
setListData(list)

getItems具有相同的字段ID,标题

public void setListData(List<?> list) { // print list } //工作正常

我的功能就像

setListData(model.getfirstlist().getItems())

我正在尝试在单个列表中添加两个列表并将其传递到

public void setListData(List<?> list) {
       // print list
}

请建议我我将如何做。

2 个答案:

答案 0 :(得分:1)

您可以创建一个List并将两个列表都包含为元素:

例如

List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);

List<List<Integer>> lists = Arrays.asList(listA, listB);

然后使用流API可以将创建的列表变平,请尝试以下操作:

List<Object> flattenList = Stream.of(lists)
                                 .flatMap(x -> x.stream())
                                 .collect(Collectors.toList());

如果不能使用流api,则可以尝试以下方法:

List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);

listA.addAll(listB);

现在listA还将包含listB的项目。

答案 1 :(得分:1)

使用“收集和列表”的addAll方法:

req