如何从列表列表中获取第一个字符串值。(我不是java专家)
private List<ListView> listView;
listView= List.of(firstlist(), secondlist(), thirdlist())
private List<ListView> firstlist;
private List<ListView> secondlist;
private List<ListView> thirdlist;
firstlist(){"mango", "Apple", "Ornage"}
secondlist(){"book", "pen", "pencil"}
thirdlist(){"van", "car", "lorry"}
这里 listview list 又包含三个列表[即firstlist(), secondarylist(),thirdlist()] 我需要获取所有三个列表的第一个值并将其存储在 Arraylist 中。我尝试过类似的事情,
List listViewTitle = new ArrayList<>(listView.forEach(sublist -> sublist.getFirstValue()));
但是没有成功。我需要从列表列表中的每个迭代器中获取第一个字符串。我需要将 芒果、书、货车 存储到 listViewTitle Arraylist
import java.util.List;
import java.util.stream.Collectors;
public class Application {
public static void main(String[] args) {
List<List<String>> list = List.of(List.of("A1","B1"),List.of("A2","B2"));
List<String> listOnlyFirstOne = list
.stream() // create a stream
.map(subList -> subList.get(0)) // collect only first one of each list
.collect(Collectors.toList()); // collect result from map into new list
listOnlyFirstOne.forEach(System.out::println); // print new list
}
}
List<String> listViewTitle = new ArrayList<>();
listView.forEach(sublist -> listViewTitle.add(sublist.get(0)));
List#getFirst
在 Java 21 中,
List
终于 获得了 getFirst
和 getLast
的直接方法。
这些新方法是添加到 Java Collections Framework 中的 Sequenced Collections 功能的一部分。 有关更多信息,请参阅 Stuart Marks 的本指南和本演讲。
样本数据:
List < List < String > > listOfLists =
List.of(
List.of( "mango" , "Apple" , "Ornage" ) ,
List.of( "book" , "pen" , "pencil" ) ,
List.of( "van" , "car" , "lorry" )
);
创建这些内部列表的流。提取每个内部列表的第一个元素。然后将这些第一个元素收集到它们自己的列表中。
List < String > firsts = listOfLists.stream( ).map( List :: getFirst ).toList( );
转储到控制台。
listOfLists.forEach( System.out :: println );
firsts.forEach( System.out :: println );
[mango, Apple, Ornage]
[book, pen, pencil]
[van, car, lorry]
mango
book
van