我有两个清单:
Names= ["John","Mark","Jo","Peter"];
Values= [1.1,1.2,1.3,1.4];
我想将它们合并为:
info=[["John",1.1],["Mark",1.2],["Jo",1.3],["Peter",1.4]];
我该怎么做?请有人帮忙,请
答案 0 :(得分:3)
您可以使用java.util.Map。示例代码如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group" id="viet">
<h5>Bank Type:</h5>
<select id="Bank_Type123" class="form-control">
<option value="" disabled selected style="display:none;">Choose A Bank</option>
<option name="Mizuho" value="10000">Mizuho</option>
<option name="UFJ" value="20000" >UFJ</option>
<option name="Yucho" value="30000" >Yucho</option>
</select>
</div>
<div id="divCheckbox">
<div class="input-group px-1 py-1">
<span class="input-group-addon">Wallet</span>
<span id="amount_of_money" class="input-group-addon unique"></span>
<span class="input-group-addon">JPY</span>
</div>
<div class="input-group px-1 py-1">
<span class="input-group-addon">Total:</span>
<span id="amount_money_total" class="input-group-addon"></span>
<span class="input-group-addon">JPY</span>
</div>
</div>
答案 1 :(得分:3)
Java 8之前的方法是定义一个包装类来保存名称/值对:
public class Pair {
private String name;
private Double value;
public Pair(String name, Double value) {
this.name = name;
this.value = value;
}
// getters and setters
}
然后迭代两个原始列表并填充新的结果列表:
List<String> names = new ArrayList<>();
names.add("John");
names.add("Mark");
names.add("Jo");
names.add("Peter");
List<Double> values = new ArrayList<>();
values.add(1.1d);
values.add(1.2d);
values.add(1.3d);
values.add(1.4d);
List<Pair> result = new ArrayList<>();
for (int i=0; i < names.size(); ++i) {
result.add(new Pair(names.get(i), values.get(i));
}
答案 2 :(得分:1)
理想情况下,在这种情况下,您需要创建一个包含两个字段name
,value
的类,然后使用指定的名称和值启动所需的许多对象并将其存储到list使生活变得简单,以便维护相关数据,并在以后对对象执行进一步操作。
另一个解决方案是使用另一个答案所建议的地图,但如果不存在重复的名称则只使用 。
尽管如此,如果您不想继续使用建议的方法,您可以将这两个列表合并在一起:
从Java-8开始:
List<List<Object>> merged =
IntStream.range(0, Names.size())
.mapToObj(i -> Arrays.asList((Object) Names.get(i), Values.get(i)))
.collect(Collectors.toList());
或强制性方法:
List<List<Object>> merged = new ArrayList<>();
for (int i = 0; i < Names.size(); i++) {
List<Object> temp = new ArrayList<>();
temp.add(Names.get(i));
temp.add(Values.get(i));
merged.add(temp);
}
请注意,使用命令式方法,您可以在合并后修改嵌套列表,而第一种情况则无法修改嵌套列表。在决定哪种情况最适合您的情况时,我会留给您。
顺便说一下,你应该用小写字母开始变量,即names
而不是Names
和values
而不是Values
等。