gpt4 book ai didi

java - 从不同类中的其他方法调用数组

转载 作者:行者123 更新时间:2023-12-02 08:32:57 26 4
gpt4 key购买 nike

我需要帮助处理我的 java 程序中的数组。在我的第一个类“test”中,我设置了 4 个变量,然后将它们发送到我的另一个类(class)(test2)。

arr[i] = new test2(id, fname, lname, case);

此时,变量已设置,然后我想返回这些变量。因此,在 test2 类中,我有一个严格返回这些变量之一的方法

public int getId(){
return id;
}

我知道这有点愚蠢,但我想教授得到了教授想要的东西。我现在想做的是在“test”的主要方法中,我想检索该变量并根据该 int 对数组进行排序。不幸的是,我必须创建自己的排序函数,但我认为这适合我想做的事情。

for(j = 0; j < arr.length; j++){
int indexMin =j;

for(i = j; i < arr.length;i++){
if(arr[i] < arr[indexMin]){
indexMin = i;
}
}
int tmp = arr[j];
arr[j] = arr[indexMin];
arr[indexMin] = tmp;
}

我很感谢任何人可以提供的帮助。谢谢

最佳答案

一些评论:

-你的循环看起来像这样:

for(i = j; i < arr.length; i++)

你应该声明

for(int i = j; i< arr.length; i++);

要么你还没有声明 i ,这会给你带来编译错误,要么你提前声明了 i ,这并不理想......你可以通过尽可能在本地声明变量来更好地避免错误。

-在这一行中您直接比较对象:

if(arr[i] < arr[indexMin]){

但是如果我正确理解你的意图,你想要比较 ID,所以这应该看起来像

if(arr[i].getId() < arr[indexMin].getId()){

-看起来 arr 是 test2 对象的数组,但您将一个分配给 int 以用于交换代码:

int tmp = arr[j];

这应该是

test2 tmp = arr[j];

就您的算法而言,为什么不启动并运行您的代码,然后尝试使用一些结果进行测试。如果有 4 个 ID 为 1、2、3 和 4 的对象呢? 4、3、2 和 1 怎么样?与我在这里告诉你的算法相比,通过手动操作你会学到更多的东西。不要害怕添加一些语句来帮助您准确了解何时发生的情况。例如,也许您可​​以将最后 4 行更改为:

System.out.println("About to swap id " + arr[j].getId() + " from index " + j + " with minimum " + arr[indexMin].getId() + " at index " + indexMin);
test2 tmp = arr[j];
arr[j] = arr[indexMin];
arr[indexMin] = tmp;

这将帮助您更快地了解程序中发生的情况,并且不要害怕添加更多类似的内容。

关于java - 从不同类中的其他方法调用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781390/

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