gpt4 book ai didi

java - 如何比较 arraylist 中的 int[] 元素?

转载 作者:行者123 更新时间:2023-12-02 16:15:43 25 4
gpt4 key购买 nike

public company(String a, int[] b)

我创建了一个类,company .

ArrayList<company> c1;
int temp;
for(company c:c1) {
if (temp > c.getb()) {
temp = c.getb();
}

有一个公司列表,一个公司有一些整数存储在其中作为 int[] .

我正在尝试比较并从 int[] b 中获取最大值.

但是我的代码显示错误,因为 c.getb()int[]数组所以不能用 < 进行比较或 >

所以,我不确定如何比较 int[] ArrayList 中的值.

最佳答案

I am trying to compare and get the largest value from int[] b.

您的代码有几个问题:

ArrayList<company> c1 = ...
int temp;
for(company c : c1) {
if (temp > c.getb()) {
temp = c.getb();
}
}

首先,您需要将temp 初始化为一个值,哪个值? Integer.MIN_VALUE;,因为您正在尝试获取最大 值。此外,这:

for(company c : c1) {
if (temp > c.getb()) {
temp = c.getb();
}
}

不是最大,而是最小。所以你真正想做的是:

List<company> c1 = ....
int max = Integer.MIN_VALUE;
for(company c : c1) {
int temp = Arrays.stream(c.getb()).max().getAsInt();
max = Math.max(temp, max);
}

如果您不想使用Arrays.stream,您可以自己创建函数:

public static int maxArray(int [] array){
int max = Integer.MIN_VALUE;
for(int e : array) {
max = Math.max(e, max);
}
return max;
}

如您所见,这与您最初尝试做的非常相似。

使用 Java 流,您可以按如下方式执行此操作:

ArrayList<company> c1 = ...
int max = c1.stream()
.map(c -> Arrays.stream(c.getb()).max().getAsInt())
.max(Comparator.naturalOrder())
.orElse(Integer.MIN_VALUE);

关于java - 如何比较 arraylist 中的 int[] 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66777196/

25 4 0