gpt4 book ai didi

java - 如何根据 map 键制作一组

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:33 24 4
gpt4 key购买 nike

我正在尝试将映射中的键提取到集合中。键是具有 2 个原始参数的对象,我如何使其不重复设置我想要的参数?下面的代码是方法,参数是帐户。我想通过 acc 的余额使集合不重复。

public static Map<Account, MyLinkedList<Customer>> getAccounts() {
Map<Account, MyLinkedList<Customer>> AccMap = new TreeMap<>(new AccountComparator());

System.out.print("Please enter how many accounts: ");
int accNumber = in.nextInt();
System.out.println();
for(int i = 1; i <= accNumber; i++){
System.out.print("Account # " + i +". Number of customers: ");
int cusNumber = in.nextInt();
System.out.println("-----------------------------------------");
//Account acc = new Account(accountID++, (int)(Math.random()*200-100));

MyList<Customer> cusList = new MyLinkedList<>();
cusList = getCustomers(cusNumber);
AccMap.put(new Account(accountID++, (int)(Math.random()*200-100)), (MyLinkedList<Customer>) cusList);
}

System.out.println(AccMap.toString());
return AccMap;
}

最佳答案

map 有一个名为 keyset 的方法它将所有键作为一个集合返回到映射。由于映射的工作方式,它在键上已经是唯一的(在您的例子中是 Account 对象)。但是,它使用帐户比较器和 equals 方法检查唯一性。

如果您的 AccountComparator 类仅比较 accountID 那么这应该会给出您想要的结果。

如果您的比较器包含这两个参数,那么您可能会遇到问题。

关于java - 如何根据 map 键制作一组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34482468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com