这是我的自定义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/