首页 > 解决方案 > 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。提前致谢

标签: javaandroidfor-looparraylist

解决方案


一种快速简便的方法是使用HashMap. 哈希映射是键值集合,在您的情况下,您将创建一个HashMap<String, List<String>>存储usernameas 键和userNumber作为值列表的值(因为您有超过 1 个)。

然后您的代码将更改如下:

  1. 遍历您拥有的所有用户。
  2. 如果username存在于 hashmap 中,usernumber则添加 。
  3. 如果username不存在,则将其添加到哈希图中,并usernumber作为列表的第一个元素。

最后,您将遍历 hashmap,打印它拥有的键和值。


推荐阅读