java - Java 打印带有组名的 ArrayList 组
问题描述
我只是一个初学者,正在学习自己的 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<String, List<String>>
存储username
as 键和userNumber
作为值列表的值(因为您有超过 1 个)。
然后您的代码将更改如下:
- 遍历您拥有的所有用户。
- 如果
username
存在于 hashmap 中,usernumber
则添加 。 - 如果
username
不存在,则将其添加到哈希图中,并usernumber
作为列表的第一个元素。
最后,您将遍历 hashmap,打印它拥有的键和值。
推荐阅读
- node.js - 安装新版本后如何切换到新的 Postgres 实例?
- opencv - 机器学习:关于处理 RGBD 流和相关组件的问题
- ocaml - List.fold_left 仅适用于一个参数
- batch-file - 回显多个变量,它们之间没有空格
- javascript - 如何列出所有承诺
- c# - 在 VS 自定义可视化工具中的“new AdhocWorkspace()”之后“此功能需要所有线程进行评估”
- django - Django auth:self.request.user 在视图集中始终是匿名的
- opencv - 学习深度学习的最佳来源是什么?
- ios - 推送 ViewController 时 UI 冻结
- ios - 如何将日期范围格式化为“MMM,d”?