【问题标题】:ArrayList from class objects simpler way to do?ArrayList 从类对象中更简单的方法是什么?
【发布时间】:2021-01-08 06:46:03
【问题描述】:

我知道如何在java中将类对象放入ArrayList(因为可以在不知道索引的情况下添加新对象)但我想知道是否有更简单的方法将它们添加到ArrayList和迭代它们?

我什至在想,假设我将我的对象名称保持在一个模式中,我应该能够使用循环将每个对象添加到列表中,例如car1, car2, car3, ...

import java.util.ArrayList;

public class TestCar {
        
    public static void main(String[] args) {
        ArrayList<String> carNames = new ArrayList<>();
        // Cars have simple getter methods corresponding with String and int
        Car car1 = new Car("Rav4", 2017);
        carNames.add(car1.getName());
        Car car2 = new Car("Commodore", 2005);
        carNames.add(car2.getName());

        for (int i = 0; i < carNames.size(); i++) {
            System.out.println(carNames.get(i));
        }

    }
}

一如既往,感谢您的回复!

【问题讨论】:

  • 你可以使用addAll
  • 不清楚您想从示例代码中做什么,您有许多单独的对象要添加到列表中,对吗?还是它们以某种方式联系在一起?
  • 您可以使用ArrayList&lt;Car&gt;,如果您只想要名称,请使用@Eritrean 给出的答案。

标签: java class object arraylist


【解决方案1】:

假设您使用的是 Java 8 或更高版本,您可以将您的 Car 对象添加到列表中并使用流来获取 carNames 的列表:

List<Car> myCarList = Arrays.asList( new Car("Rav4", 2017), new Car("Commodore", 2005));
List<String> carNames = myCarList.stream()
                                 .map(Car::getName)
                                 .collect(Collectors.toList());

【讨论】:

  • 所以 OP 应该将对象添加到列表中以便能够将它们添加到另一个列表中?
  • @JoakimDanielson 有时主的方式是高深莫测的。 java的方式也是如此。开玩笑。我认为Car 对象通常有更多的字段。如果他将整个对象放在列表中,他可以将其映射到任何属性,例如Car::getMakeCar::getManufacturerCar::getId
  • 这不是我评论的重点,为什么要创建 2 个列表而不是直接创建一个?你的解决方案没有任何收获,你可以做List&lt;String&gt; carNames = Arrays.asList( "Rav4", "Commodore");
猜你喜欢
  • 2010-10-12
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 2014-01-03
  • 1970-01-01
相关资源
最近更新 更多