我只是一个初学者,正在自己学习 Java! 我只有一个用户对象的数组列表:
class Users{
public userName;
public userNumber;
}
然后我创建一个模型:
ArrayList<Users> model=new ArrayList<Users>();
并将模型项添加为:
model.add(new Users("abc","123"));
model.add(new Users("def","888"));
model.add(new Users("abc","246"));
model.add(new Users("def","999"));
model.add(new Users("abc","456"));
我想要做的是以这种方式打印模型,该模型应该显示类似的分组数据,组名称为:
for(int i=0;i:i<users.size;i++){
System.out.printlin("users:::"+users.get(i).userNumber);
}
但它也应该按名称分组和打印组,即:
abc ->
users:::123
users:::246
users:::456
def ->
users:::888
users:::999
所以我想对数据进行分组,然后以分组格式打印数据以及每个组名称!
我该怎么做,我只是在自学 Java。提前致谢
最佳答案
实现您想要的操作的一种快速且简单的方法是使用 HashMap
。 HashMap 是键值集合,在您的情况下,您将创建一个 HashMap<String, List<String>>
其中存储 username
作为键,并且 userNumber
作为值列表(因为您有多个值)。
然后您的代码将更改如下:
- 迭代您拥有的所有用户。
- 如果
username
存在于 hashmap 中,添加usernumber
到它。 - 如果
username
不存在,使用usernumber
将其添加到hashmap中作为其列表的第一个元素。
最后,您将迭代 HashMap ,打印它所具有的键和值。
关于Java 打印带有组名称的 ArrayList 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57951682/