gpt4 book ai didi

java - 在 if 语句中检查数组的两个返回值

转载 作者:行者123 更新时间:2023-12-01 08:52:13 25 4
gpt4 key购买 nike

我的数组包含随机数,以下方法成功返回它的两个最大值:

 int[] a = {a1 = (int) ((Math.random() * 10) + 1), a2 = (int) ((Math.random() * 10) + 1), a3 = (int) ((Math.random() * 10) + 1)};

public static int[] showtwolargestints(int a[]) { // returns two largest integers of my array
int largestA = Integer.MIN_VALUE, largestB = Integer.MIN_VALUE;
for(int value : a) {
if(value > largestA) {
largestB = largestA;
largestA = value;
} else if (value > largestB) {
largestB = value;
}
}
return new int[] { largestA, largestB };

}

我现在想做的是,在按下 GUI 中的按钮后,我想显示某些标签/图片,具体取决于我的两个最大整数是多少。由于我是初学者,我真的不知道比较它们的好方法:这是我在 GUI 类/JButton 方法中的代码:

public void buttonmethod() {   
try {
if (Arrays.toString(myobject.showtwolargestints(myobject.a)).equals("[10, 10]")) {
label1.setVisible(true);
Icon i1 = new ImageIcon("pics/ten.png");
label1.setIcon(i6);

label2.setVisible(true);
Icon i2 = new ImageIcon("pics/ten.png");
label2.setIcon(i7);
} // end of if
else if (Arrays.toString(myobject.showtwolargestints(myobjects.a)).equals("[10, 9]")) {
label1.setVisible(true); // and so on...

我确实得到了结果,但是它们似乎无法正常工作,因为在按下按钮后,我的程序每隔几次启动,它要么只显示一个标签,要么根本没有变化:l

最佳答案

使用 toString 进行操作效率低下(特别是当您重复计算最大元素数组及其字符串表示形式时)且笨重。

直接比较数组元素即可:

int[] twoLargest = myobject.showtwolargestints(myobject.a);
if (twoLargest[0] == 10 && twoLargest[1] == 10) {
// ...
} else if (twoLargest[0] == 10 && twoLargest[1] == 9) {
// ...
}
<小时/>

但看起来您可以通过将文件名放入数组来简化代码:

String[] filenames = {"pics/zero.png", ... "pics/ten.png"};

然后只是说:

label1.setVisible(true);
Icon i1 = new ImageIcon(filenames[twoLargest[0]]);
label1.setIcon(i1);

label2.setVisible(true);
Icon i2 = new ImageIcon(filenames[twoLargest[1]]);
label1.setIcon(i2);

关于java - 在 if 语句中检查数组的两个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42316763/

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