Java 如何解决;类型列表的方法值()未定义<;地图入口<;字符串,字符串>&燃气轮机&引用;
首先,我有两个字符串数组列表。然后我将这两个arraylist字符串组合在一起 双字符串arraylist如下所示:Java 如何解决;类型列表的方法值()未定义<;地图入口<;字符串,字符串>&燃气轮机&引用;,java,list,arraylist,Java,List,Arraylist,首先,我有两个字符串数组列表。然后我将这两个arraylist字符串组合在一起 双字符串arraylist如下所示: List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size()); if (d1.size() == d2.size()) { for (int i = 0; i < d1.size(); ++i) {
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
d1=[a1、a2、a3、a3]
d2=[z1,z2,z3,z3]
正如我从people建议中发现的,我将这两个字符串arraylist组合如下:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
List multiall=newarraylist(d1.size());
如果(d1.size()==d2.size()){
对于(int i=0;i
组合两个字符串arraylist后的结果如下所示:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
[a1=z1,a2=z2,a3=z3,a3=z3]
现在我像这样删除了副本:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
multiall=multiall.stream().distinct().collect(Collectors.toList())代码>
结果是这样的:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
[a1=z1,a2=z2,a3=z3]
现在我要做的是将其转换为字符串arraylist。我试过这样做:
ArrayList targetList=新的ArrayList(multiall.values())代码>
但我有一个错误是这样说的:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
类型列表的方法值()未定义
我的预期输出如下:
List<Map.Entry<String, String>> multiall = new ArrayList<>(d1.size());
if (d1.size() == d2.size()) {
for (int i = 0; i < d1.size(); ++i) {
multiall.add(new AbstractMap.SimpleEntry<String, String>(d1.get(i), d2.get(i)));
}
}
[a1=z1,a2=z2,a3=z3]
作为字符串数组列表。可能吗?还是我的观念错了
请帮帮我。谢谢.values()
使用地图,而不是列表
尝试:
您还可以将列表更改为映射,并使用覆盖的toString()
:-
Map-stringMap=multiall.stream()
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
System.out.println(stringMap);
类似这样的内容:multiall.stream().map(kv->kv.value()).collect(collector.toList())
我尝试了您的解决方案,但我只得到了d2
的值。你知道为什么吗?@sharky因为你想要价值观,不是吗?d1
的元素是“键”。您想要一个字符串列表,如[“a1=z1”、“a2=z2”、“a3=z3”]
?非常抱歉。我有点困惑。是的,我想要一个字符串列表。这可能吗?还是我的观念错了@KartikI仍然停留在.map(entry->entry.getKey()+“=”+entry.getValue())
列表targetList=multiall.stream().map(entry->entry.getKey()+“=”+entry.getValue()).collect(collector.toList())代码>