我有完整的清单:
List<Pair<String,String>> List = new ArrayList<>();
我想注入第一个元素(字符串)并为其创建新的简单列表:
List<String> localtNameList
如何使用 first 字符串将List<Pair<String,String>>
数组转换为普通List <String>
?
在我的模型中,我有:
public List<Pair<String,String>> getArtistsWithPhoto ()
{
List<Pair<String,String>> perfectMapNameAndFoto = new ArrayList<>() ;
if (ituneResult.getListSongs() != null){
for (ResultiTune item : ituneResult.getListSongs() ){
perfectMapNameAndFoto.add(new Pair <String,String> (item.getArtistName(),item.getArtworkUrl100() ));
}
}
if(lastFmResult.getResults().getArtistmatches().getListOfLatsFmArtists() != null) {
for (ArtistLastFm item : lastFmResult.getResults().getArtistmatches().getListOfLatsFmArtists())
perfectMapNameAndFoto.add(new Pair<String, String>(item.getName(), item.getUrl()));
}
return perfectMapNameAndFoto;
}
并在我的适配器中: 通过实现:'com.annimon:stream:1.2.1'
List<String> localArtistNameList = Stream.of(list).map(Pair::getFirst).collect(Collectors.toList());
Android版本Pair Class没有Eric提到的getFirst,所以解决方法是:
p -> p.first
最终工作代码:
Stream.of(list).map(p -> p.first).collect(Collectors.toList());
如果有人想在Android 在Gradle中: implementation 'com.annimon:stream:1.2.1'
答案 0 :(得分:2)
您可以使用Stream
:
List<String> localtNameList = list.stream().map(Pair::getFirst).collect(Collectors.toList());
这是假设Pair
有一个getFirst
方法返回第一个元素。