gpt4 book ai didi

java - 如何将值从一个列表复制到具有不同对象的另一个列表

转载 作者:行者123 更新时间:2023-11-30 08:01:44 25 4
gpt4 key购买 nike

我有MaterailInfo和StyleInfo,我想根据StyleNumber与materialNumber匹配来设置styleDescription。我正在使用 2 个 for 循环,有其他解决方案吗?

Material 信息:

class MaterailInfo {
private String materialNumber;
private String materialDescription;

public MaterailInfo(String materialNumber, String materialDescription) {
this.materialNumber = materialNumber;
this.materialDescription = materialDescription;
}

// getter setter methods

}

样式信息:

class StyleInfo {
private String StyleNumber;
private String styleDescription;

public StyleInfo(String styleNumber, String styleDescription) {
StyleNumber = styleNumber;
this.styleDescription = styleDescription;
}

// getter setter toString methods

}

测试12:

public class TEst12 {

public static void main(String[] args) {
List<MaterailInfo> mList = new ArrayList<MaterailInfo>();
mList.add(new MaterailInfo("a", "a-desc"));
mList.add(new MaterailInfo("b", "b-desc"));
mList.add(new MaterailInfo("c", "c-desc"));

List<StyleInfo> sList = new ArrayList<StyleInfo>();
sList.add(new StyleInfo("a", ""));
sList.add(new StyleInfo("b", ""));
sList.add(new StyleInfo("c", ""));

for (MaterailInfo m : mList) {
for (StyleInfo s : sList) {
if (s.getStyleNumber().equals(m.getMaterialNumber())) {
s.setStyleDescription(m.getMaterialDescription());
}
}
}

System.out.println(sList);
}
}

最佳答案

如果您使用 Map 而不是 List 来存储数据,则只需执行一次循环即可:

Map<String, String> mMap = new HashMap<String, String>();
mMap.put("a", "a-desc");
mMap.put("b", "b-desc");
mMap.put("c", "c-desc");

Map<String, String> sMap = new HashMap<String, String>();
sMap.put("a", "");
sMap.put("b", "");
sMap.put("c", "");

for (Map.Entry<String, String> entry : mMap.entrySet()) {
sMap.put(entry.getKey(), mMap.get(entry.getKey());
}

如果样式编号与任何已知 Material 编号都不匹配,此代码会将样式描述留空。

关于java - 如何将值从一个列表复制到具有不同对象的另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31824937/

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