我应该从“种群”数组中的所有种群中取得一定的最小值并将它们返回到数组中。我可以为我的新数组获取正确数量的元素,并正确地分配最后一个值,但剩下的值会返回为零!使用现有阵列的元素填充数组
class Canada {
private String[] provinces;
private int[] populations;
private int[] array;
private int i;
public static final int NO_SUCH_PROVINCE = -1;
public static final int O = 0;
public static final int Q = 1;
public static final int BC = 2;
public static final int A = 3;
public static final int M = 4;
public static final int S = 5;
public static final int NS = 6;
public static final int NB = 7;
public static final int NL = 8;
public static final int PE = 9;
public static final int NT = 10;
public static final int Y = 11;
public static final int N = 12;
public Canada() {
provinces = new String[13];
provinces[O] = "Ontario";
provinces[Q] = "Quebec";
provinces[BC] = "British Columbia";
provinces[A] = "Alberta";
provinces[M] = "Manitoba";
provinces[S] = "Saskatchewan";
provinces[NS] = "Nova Scotia";
provinces[NB]= "New Brunswick";
provinces[NL] = "Newfoundland and Labrador";
provinces[PE] = "Prince Edward Island";
provinces[NT] = "Northwest Territories";
provinces[Y] = "Yukon";
provinces[N] = "Nunavut";
populations = new int[13];
populations[O] = 12851821;
populations[Q] = 7903001;
populations[BC] = 4400057;
populations[A] = 3645257;
populations[M] = 1208268;
populations[S] = 1033381;
populations[NS] = 921727;
populations[NB] = 751171;
populations[NL] = 514536;
populations[PE] = 142204;
populations[NT] = 141462;
populations[Y] = 33897;
populations[N] = 31906;
}
public int[] getPopulatiosnAboveMin(int min) {
int i = 0;
while(i < populations.length) {
if(populations[i] > min){
array = new int[i + 1];
array[i] = populations[i];
}
i++;
}
return(array);
}
}
您应该使用地图和班级。 – SLaks
每次通过while循环分配一个新数组,并且只填充它的最后一个成员看起来不正确... – John3136