Java 打印带有组名称的 ArrayList 组

标签 java android for-loop 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 是键值集合,在您的情况下,您将创建一个 HashMap<String, List<String>>其中存储 username作为键,并且 userNumber作为值列表(因为您有多个值)。

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

  1. 迭代您拥有的所有用户。
  2. 如果 username存在于 hashmap 中,添加 usernumber到它。
  3. 如果 username不存在,使用usernumber将其添加到hashmap中作为其列表的第一个元素。

最后,您将迭代 HashMap ,打印它所具有的键和值。

关于Java 打印带有组名称的 ArrayList 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57951682/

相关文章:

Rust 中的 for 循环中不分配字符串返回值

java - CDI 拦截器未启动

java - 模板引擎应该渲染到输出流还是返回字符串

java - 在 Android 上使用 SQLite 时出现 OutOfMemory 异常

java - Eclipse 构建过程

android - 在单独的线程中从服务中获取 AutoCompleteTextView 建议

c++ - for_each 和 mem_fun_ref 麻烦

java - 我怎样才能在java中迭代这两个循环?

java - 静态变量在android应用程序中的 Activity 中真的安全吗

java - 在发送 HTTP 请求之前显示加载 jLabel