![](/img/trans.png)
[英]How can I add elements from one ordered integer ArrayList to another integer ordered ArrayList?
[英]How do you add elements from one ArrayList to another?
所以我有一个水果的 ArrayList,它有水果的名字和它的主要维生素是什么:
ArrayList<Foods> fruit;
public Fruit() {
fruit = new ArrayList<Foods>();
fruit.add(new Foods("Orange", "Vitamin C"));
}
等等..
我想将所有含有维生素 C 的水果添加到另一个数组列表中,因此我使用以下方法迭代它们:
Iterator vitC = fruit.iterator();
while (vitC.hasNext()) {
if (vitC.next().contains("Vitamin C")) {
vitCfruit.add(vitC.next());
}
}
然而,这会添加下一个值,所以如果苹果在列表中的橙色之后,它会将苹果添加到下一个 ArrayList 而不是橙色。
我将忽略代码中的明显错误。 为了使用列表中的元素,您应该执行以下操作:
Iterator vitC = fruit.iterator();
while (vitC.hasNext()) {
Foods x = vitC.next();
if (x.contains("Vitamin C")) { // should look for a Foods object here!!!
administrators.add(x);
}
}
您声明的“if”中的 vitC.next() 将起作用,但将其添加到新列表时,您将不会访问下一行中的相同元素。
使用 tmp 变量来存储 vitC.next() ,如果它符合条件,您仍然可以添加 ot..
Iterator vitC = fruit.iterator();
while (vitC.hasNext()) {
tmp = vitC.next();
if (tmp.contains("Vitamin C")) { // should look for a Foods object here!!!
administrators.add(tmp);
}
}
增强的 for 循环使这变得简单:
for (Fruit thisFruit : fruit) {
if (thisFruit.contains("Vitamin C")) {
vitCfruit.add(thisFruit);
}
}
在 Java 8 中,这对于 lambda 很简单:
List<Foods> vitCfruit = fruit.stream()
.filter(f -> f.contains("Vitamin C"))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.