首先需要了解以下几点:
- 在使用数组之前,必须对其进行初始化。例如:
int[] even_sort = new int[3];
- 在Java中,数组具有静态大小。这意味着您无法添加任意数量的元素。您必须先选择一个大小。您应该看一下Java集合,这是摆脱这种“规则”的好方法。
Arrays.sort()
方法仅适用于数组。这里的 array_sort[i]
是一个 int
。
Arrays.sort()
对数组进行排序,但不返回任何内容。
如果你真的想使用数组(但你不应该这样做),你可以像这样调整大小:
int[] even_sort = new int[3]{1, 2, 3};
int[] temp = new int[4];
System.arraycopy(even_sort, 0, temp, 0, even_sort.length);
even_sort = temp;
even_sort[3] = 4;
另一种方法是创建一个实用方法,该方法使用反射来创建新数组:
import java.lang.reflect.Array;
public Object resizeArray(Object originalArray, int newSize){
int originalSize = Array.getLength(originalArray);
Class arrayType = originalArray.getClass().getComponentType();
Object newArray = Array.newInstance(arrayType, newSize);
System.arraycopy(originalArray, 0, newArray, 0, Math.min(originalSize, newSize));
return newArray;
}
如果你仍然因为某些原因想要使用数组(但你仍然不应该这样做),这里有一段代码可以过滤、调整大小和排序你的数组。
int[] arrayToFilterAndSort = {5, 12, 3, 21, 8, 7, 19, 102, 201};
int[] sortedEvens = new int[0];
for(int current : arrayToFilterAndSort){
if((current & 1) == 1){
sortedEvens = resizeArray(sortedEvens, sortedEvens.length + 1);
sortedEvens[sortedEvens.length - 1] = current;
}
}
Arrays.sort(sortedEvens);
资源: