【发布时间】:2019-05-25 14:48:20
【问题描述】:
我目前有三个对象类,交易、用户和组。交易收集:id、支付者、日期、描述、金额和涉及的用户 ID 的 ArrayList。这完美地工作,但通过迭代用户的方法添加了许多代码行以查找哪个用户是谁。我的问题是,我可以有一个 ArrayList *partecipants = new ArrayList;哪个有所有用户的参考?
class Transaction{
private static AtomicInteger count = new AtomicInteger(0);
private int id = count.incrementAndGet();
private String paid;
private Date date;
private String message;
private Double amount;
private ArrayList<Integer> users = new ArrayList<Integer>();
【问题讨论】:
-
您的“多行代码”可能很容易被压缩——为什么不向我们展示您的相关minimal reproducible example 代码?
-
是的,但以拥有 100 万用户为例。查找具有该 ID 的那个是非常低效的迭代。所以我认为在那个 ArrayList 中引用用户会更好。我知道它可以在 C 中完成,但我对 java 知之甚少。
-
public String getUserName(int id){//done String name=null; for(用户用户: general.users){ if(user.get_id()==id){ name=user.get_name();休息; } } if(name==null){ ambrogio.sendText("错误");返回空值; }else{ 返回名称; } }
-
听起来你想要
Map,类似于Map<Integer, String> usersById = new HashMap<>(); -
一个
Map,就像我建议的那样,可以做到这一点。没有迭代,只做String userName = usersById.get(id)。