亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 打印帶有組名稱的 ArrayList 組

Java 打印帶有組名稱的 ArrayList 組

九州編程 2023-08-04 14:44:54
我只是一個初學者,正在自學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。提前致謝
查看完整描述

5 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

public class User {

private String userName;

public String getUserName() {

    return userName;

}


public User(String userName, String userNumber) {

    this.userName = userName;

    this.userNumber = userNumber;

}


public void setUserName(String userName) {

    this.userName = userName;

}


public String getUserNumber() {

    return userNumber;

}


public void setUserNumber(String userPassword) {

    this.userNumber = userPassword;

}


private String userNumber;

}

主類

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

public class MainMethod {


private static HashMap<User, ArrayList<User>> maps;

private static ArrayList<User> user1list;

private static ArrayList<User> user2list;


public static void main(String...args) {

    maps = new HashMap<>();

    user1list = new ArrayList<>();

    user2list = new ArrayList<>();

    User user1 = new User("Ram", "1234");

    User user2 = new User("Alish", "5678");

    User user3 = new User("Ram", "91011");

    User user4 = new User("Alish", "121314");

    user1list.add(user1);

    user1list.add(user3);

    user2list.add(user2);

    user2list.add(user4);

    maps.put(user1, user1list );

    maps.put(user2, user2list);


   /// User one lists

    for ( User userone: maps.get(user1)) {

        System.out.println("userone Name:::"+userone.getUserName());

        System.out.println("User one Number:::"+userone.getUserNumber());

    }


    System.out.println();

     // USer tow list

    for (User usertwo: maps.get(user2)) {

        System.out.println("User two Name:::" +usertwo.getUserName());

        System.out.println("User two Number :::" +usertwo.getUserNumber());

    }

  }

 }


查看完整回答
反對 回復 2023-08-04
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

Map<String, List<Users>> use = model.stream.collect(Collectors.groupinBy(Person::getUsername)) ;

您可以使用這種方法按組打印數據


查看完整回答
反對 回復 2023-08-04
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

使用 Java Streams 嘗試如下所示。


//group by user name

Map<String, Set<String>> map =

            model.stream().collect(

                    Collectors.groupingBy(Users::getUserName,

                            Collectors.mapping(Users::getUserNumber, Collectors.toSet())

                    )

            );

System.out.println(map);

確保在 Users 類中實現getter 方法getUserName()、getUserNumber() 。這里我假設userName和userNumber都是字符串類型的數據。


查看完整回答
反對 回復 2023-08-04
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

完成您想要的操作的一種快速而簡單的方法是使用HashMap. 哈希映射是鍵值集合,在您的情況下,您將創建一個HashMap<String, List<String>>存儲username鍵和userNumber值列表的存儲(因為您有多個值)。

那么你的代碼將更改如下:

  1. 迭代您擁有的所有用戶。

  2. 如果usernamehashmap 中存在,則將其添加usernumber到其中。

  3. 如果username不存在,則將其添加到哈希映射中,并將 用作usernumber其列表的第一個元素。

最后,您將迭代哈希圖,打印它所具有的鍵和值。


查看完整回答
反對 回復 2023-08-04
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

請嘗試下面的代碼 -


public class Users {


public String userName;

public String userNumber;


public Users(String userName, String userNumber) {

    this.userName = userName;

    this.userNumber = userNumber;

}


public String getUserName() {

    return userName;

}


public void setUserName(String userName) {

    this.userName = userName;

}


public String getUserNumber() {

    return userNumber;

}


public void setUserNumber(String userNumber) {

    this.userNumber = userNumber;

}


public static void main(String ar[]) {


    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"));


    Map<String, Set<String>> map = model.stream().collect(Collectors.groupingBy(Users::getUserName,

            Collectors.mapping(Users::getUserNumber, Collectors.toSet())));

    for (Map.Entry<String, Set<String>> entry : map.entrySet()) {

        Set set = entry.getValue();

        Iterator value = set.iterator();

        while (value.hasNext()) {

            System.out.println(entry.getKey() + " : " + value.next());

        }

    }


}

}


查看完整回答
反對 回復 2023-08-04
  • 5 回答
  • 0 關注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號