gpt4 book ai didi

java - 将两个List<>映射到HashMap

转载 作者:行者123 更新时间:2023-12-01 19:35:50 28 4
gpt4 key购买 nike

我有两个列表ColumnIndexMapping列表,另一个是字符串列表

一个列表包含一个类的对象。结构如下所示-

public class ColumnIndexMapping {

private int index;
private String columnname;

public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getColumnname() {
return columnname;
}
public void setColumnname(String columnname) {
this.columnname = columnname;
}
}

现在我必须使用两个列表来制作 map 。我必须只读取第二个列表(字符串列表)中的那些索引,我们在第一个列表中具有索引属性。像下面这样 -

List<ColumnIndexMapping> colMapList =  [
{
"index": 0,
"columnname": "accountname"
},
{
"index": 2,
"columnname": "source"
},{
"index": 4,
"columnname": "customField13"
} ]

List<String> secondList = {"Nitin","India","1234","fnf","qwerty"}


Output would be ->

HashMap<String,String> outputHashmap =
{
"accountname":"Nitin",
"source":"1234",
"customField13":"qwerty"

}

尝试使用 Java7 的方法

Map<String, String> output = new HashMap<>();
for (ColumnIndexMapping colMap: colMapList) {
output.put(colMap.getColumnname(), secondList .get(colMap.getIndex()));
}

现在在 Java8 中执行此操作的最佳方法是什么。

最佳答案

如果您正在专门寻找基于 Java 8 流的方法,则可以使用以下方法。

Map<String, String> outputMap = colMapList.stream()
.collect(Collectors.toMap(ColumnIndexMapping::getColumnname,
(colMap) -> secondList.get(colMap.getIndex())));

关于java - 将两个List<>映射到HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57621316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com