[英]How do I pass an array to another class to find the minimum value?
我試圖通過創建一個新的Java類在數組中找到最小值。 我在傳遞數組並使用它來找到數組的最小值時遇到麻煩。
我總共有兩個單獨的數組,我試圖找到它們的值。
這是我創建的第一個類:
import java.util.*;
public class mooseWeight
{
public int main(String[] args)
{
int[] length1;
int[] length2;
length1 = new int[20];
length2 = new int[50];
//Length 1
System.out.println("Array 1:");
Random rnd = new Random();
for(int i = 0; i<length1.length; i++)
{
length1[i] = rnd.nextInt(400) + 250;
System.out.println(length1[i]);
return length1[i];
}
System.out.println("-----------------------------------");
//Length2
System.out.println("Array 2:");
Random rnd2 = new Random();
for(int j = 0; j < length2.length; j++)
{
length2[j] = rnd2.nextInt(400) + 250;
System.out.println(length2[j]);
return length2[j];
}
}
}
當前設置它是為了找到length1 []的最小值(又名第一個數組)。
這是我試圖將數組傳遞給的類:
public class minWeight
{
public static int getArrayMin(int[] arr)
{
mooseWeight array1[] = new mooseWeight[];
int minValue = array1[0];
for (int i = 0; i < array1.length; i++)
{
if (array1[i] < minValue)
{
minValue = array1[i];
}
//return minValue;
}
return minValue;
System.out.println(minValue);
}
}
我目前的錯誤:
1 error found:
File: D:\2016-2017\Fall2016\201_CSCE_Programming\Lab 7\minWeight.java [line: 5]
Error: array dimension missing
mooseWeight
類包含您的main,因此在創建array1
,您試圖創建一個包含實際程序的數組。
mooseWeight array1[] = new mooseWeight[];
正在創建一個mooseWeight對象數組。
由於您沒有定義大小,因此將失敗,但是即使沒有定義,也將無法正常工作。
我假設您打算創建一個int
數組,然后對其進行循環。
如果您創建了一個int
數組,然后嘗試在不添加任何內容的情況下對其進行循環,則該循環將不會執行任何操作,因為沒有任何要迭代的內容。
在您的方法中,您傳入了一個稱為arr
的int
數組,因此需要使用該數組進行循環。
如果您嘗試將2個數組傳遞給方法,則創建數組作為方法的一部分仍然無法正常工作。
您需要修改方法聲明以接受第二個數組。
假設您想從這兩個數組中找到最小值,則我修改了代碼片段以實現此目的。 如果您需要不同地處理第二個數組,請修改處理secondArr
的循環。
如評論中所述,您的mooseWeight
類應命名為MooseWeight
以保持正確的Java命名約定。
類名稱在PascalCase中,實例在camelCase中。
要調用該方法,請使用以下代碼段。
int[] ar1 = new int[20];
int[] ar2 = new int[50];
//Populate your arrays with values....
int minValue = MinWeight.getArrayMin(ar1, ar2);
類:
public class MinWeight {
public static int getArrayMin(int[] arr, int[] secondArr) {
int minValue = arr[0];
for (int i = 0; i < arr.length; i++) {
if (arr[i] < minValue)
{
minValue = arr[i];
}
}
for (int i = 0; i < secondArr.length; i++) {
if (secondArr[i] < minValue)
{
minValue = secondArr[i];
}
}
System.out.println(minValue);
return minValue;
}
}
最后要考慮的是,在您的代碼中,您嘗試打印結果之前會返回minValue
,因此打印指令始終無法訪問。
minWeight中的錯誤不是fom數組參數,而是來自以下行:
mooseWeight array1[] = new mooseWeight[];
您無法在Java中分配未知維的數組。 另外,您嘗試這樣做沒有任何意義。 只需從Java方法中刪除上面的行,並將參數名稱更改為array1。
獲取一個像netbeans或eclipse這樣的IDE。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.