当前位置: 首页 > 面试题库 >

Java-从列表/数组中的每个对象获取单个属性的最简单方法?

魏高邈
2023-03-14
问题内容

说我有一个如属性的人的对象namehair coloreye color。我有以下Person[] people包含个人对象实例的数组。

我知道我可以得到name一个Person对象的属性

// create a new instance of Person
Person george = new Person('george','brown','blue');
// <<< make a people array that contains the george instance here... >>>
// access the name property
String georgesName = people[0].name;

但是,如果我想name不使用索引就访问每个人的财产怎么办?例如,要创建仅包含名称或头发颜色的数组或列表?我是否必须手动遍历people数组?还是Java中有什么很棒的东西String[] peopleNames = people.name


问题答案:

两种选择:

  1. 迭代
  2. 流( Java 8

迭代

List<String> names = new ArrayList<>();
for (Person p : people) {
    names.add(p.name);
}

String[] names = Arrays.stream(people).map(p -> p.name).toArray(size -> new String[people.length]);


 类似资料:
  • 我正在尝试为我的列表模式中的每个对象创建一个包含该对象数据的表单。 所以我的控制器中有: 在我的ThymeLeaf模板中: 控制器: ThymeLeaf模板: 这种情况不会引发任何异常,但为空

  • 问题内容: 是否有一种简单的方法可以从对象数组列表中的一个对象的字段中获取最大值? 例如,出于下面的对象,我希望获得“值”字段的最高值。 我想从中获取ValuePairs.mValue的最大值的示例arraylist。 创建存储在arraylist中的对象的类: 我正在通过做类似的事情来获取mValue的最大值(我知道这是不正确的): dMax应该为50.00。 任何帮助表示赞赏。谢谢! 问题答案

  • 问题内容: 在Java中获取字符串的最后一个单词的最简单方法是什么?您可以假设没有标点符号(仅字母字符和空格)。 问题答案:

  • 问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正

  • 我有一个方法返回<code>Single 我可以使用,但这不允许我从中返回列表。 我还尝试了。 编辑 我可以通过以下方式完成这项工作: 请告诉 如果这种方式是正确的 我是反应式编程新手,请解释一下。

  • 问题内容: 我有一类称为具有可变的。 我想退出具有最大变量的。 我知道可以通过编写一个自定义比较器并使用来完成此操作,但是我想知道在Java 8中是否可以通过使用自定义比较器来完成此操作,因为我只想使用一个最长日期仅出现在我的代码中的某个位置,并且该类不应始终使用变量来比较实例。 问题答案: 并且Contact类不应该总是使用lastUpdated变量来比较实例 因此,每当要按实例的属性比较多个实