gpt4 book ai didi

java - 比较对象: using enhanced for loop

转载 作者:行者123 更新时间:2023-12-01 13:36:37 29 4
gpt4 key购买 nike

我正在迭代一系列对象(不同的网站类型)。但我希望能够显示哪个网站的成员(member)数量最多。最初,我的代码显示每个网站的成员(member)数量,但我的代码不完整,因为我不确定如何比较对象以查看哪个网站的成员(member)数量最多。当前代码:

public static void mostUsers(){

for (Website w: websiteTypes){
// check if the array index is not null
if (w!=null){

System.out.println(w.getType() + "has:" + w.getMembers());
System.out.println(); // line break

**//Code to compare amount of users on each site and display highest**
} else {

// no more records so quit loop
break;
}
}
}

最佳答案

您需要在迭代时跟踪最大用户数。

  1. 在循环之前将名为 maxWebsite 的变量初始化为 null
  2. 在循环之前将名为 max 的整数初始化为 Integer.MIN_VALUE
  3. 在迭代时,测试 w.getMaxUsers() 是否优于 max 值。
  4. 如果是,请相应地更新 maxWebsitemax 变量

注意:删除循环中的 else 语句,您必须迭代数组的所有元素。

<小时/>如果您使用 Collections,那么使用 Collections.max 可能会很简单使用自定义比较器:

List<Website> l = .......
l.removeAll(Collections.singleton(null)); //remove null elements from the list
Website maxWebsite = Collections.max(l, new Comparator<Website>(){
@Override
public int compare(Website arg0, Website arg1) {
return Integer.compare(arg0.getMaxUsers(), arg1.getMaxUsers());
}
});

关于java - 比较对象: using enhanced for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222557/

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