以下是一个Java代码示例,展示了如何按照对象数组中的属性首字母将其分组:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) {
List persons = new ArrayList<>();
persons.add(new Person("Alice"));
persons.add(new Person("Bob"));
persons.add(new Person("Charlie"));
persons.add(new Person("David"));
persons.add(new Person("Eve"));
Map> groupedPersons = new HashMap<>();
for (Person person : persons) {
char firstLetter = person.getName().charAt(0);
if (!groupedPersons.containsKey(firstLetter)) {
groupedPersons.put(firstLetter, new ArrayList<>());
}
groupedPersons.get(firstLetter).add(person);
}
// 打印分组结果
for (char letter : groupedPersons.keySet()) {
List group = groupedPersons.get(letter);
System.out.println("Group " + letter + ":");
for (Person person : group) {
System.out.println(person.getName());
}
System.out.println();
}
}
}
这个示例中,我们创建了一个Person
类表示每个人,具有一个name
属性用于存储姓名。然后我们创建了一个List
来存储多个Person
对象。
我们使用一个HashMap
来存储分组结果,其中键是属性的首字母,值是具有相同属性首字母的Person
对象的列表。
接下来,我们遍历persons
列表中的每个Person
对象。对于每个对象,我们提取其name
属性的首字母,并检查是否已经有一个以该首字母为键的列表存在于groupedPersons
中。如果不存在,我们创建一个新的空列表并将其放入groupedPersons
中。然后,我们将当前的Person
对象添加到以首字母为键的列表中。
最后,我们打印每个分组的结果。我们遍历groupedPersons
中的每个键,并获取对应的列表。然后,我们遍历该列表并打印每个Person
对象的姓名。
运行以上代码,将会输出如下结果:
Group A:
Alice
Group B:
Bob
Group C:
Charlie
Group D:
David
Group E:
Eve
这表明我们成功地按照name
属性的首字母将Person
对象数组进行了分组。
上一篇:按属性是否存在对对象数组进行排序
下一篇:按属性搜索和提取XML节点