java - 从 ArrayList<CustomClass> 获取 ArrayList<String> (LF 方法将字符串数据作为数组而不是 foreach 返回)

标签 java class arraylist get

这是我的自定义Class (为了便于阅读,我翻译了名称并留下了构造函数等)

public class MyClass {
    private long id;
    private String name, description;
    private int pictureId;
    ...
}

所以我使用这个类将所有数据存储为 ArrayList<MyClass>

ArrayList<MyClass> items = getResources(); //fills the arraylist

我想返回它的所有名称。

是否可以编写像ArrayList<String> names = items.getAllNames();这样的自定义方法?因为我不知道在哪里放置逻辑来解决 ArrayList而不是 Class .

getAllNames()
{
    for (MyClass item : items){
        names.add(item.getName());
    }
}

每当我需要 ArrayList 中的某些内容时,都可以放入 foreach 行,但它看起来很困惑。有没有一种干净的方法来解决这个问题?

最佳答案

您必须创建一个方法来迭代数组列表中的所有元素,并将每个名称添加到您将返回的第二个列表中。我还没有深入了解 Java 的 lambda 表达式,但如果我记忆起我的 C# 经验,那么您也许可以使用 Java 8 来做到这一点。

public List<String> getNames(){
  List<String> names = new ArrayList<>();
  List<MyClass> elements = getElements();

  for(MyClass s : elements){
     names.add(s.getName());
  }

  return names;
}

关于java - 从 ArrayList<CustomClass> 获取 ArrayList<String> (LF 方法将字符串数据作为数组而不是 foreach 返回),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15476543/

相关文章:

java - REST API 的 JSON 响应

java - 类可以作为方法的参数吗?

java - 调用方法和填充随机数组时出现问题

python - Numpy:高效访问 numpy.split 生成的子数组

java - 用户向数组列表添加元素

java - 将 ArrayList 中的 <E> 留给类来决定

java - JSP - 如何获得以毫秒为单位不断更新的时间

java - 每秒 100 万次远程函数调用

java - JPA/hibernate 大集合

c++ - 如何在 Arduino 类中创建 ISR?