添加函数void addRange(int [] array)将新数组的元素放在现有数组的末尾?

时间:2017-04-12 07:30:15

标签: java arrays

package basic;

public class SortingAlgs {

 public static void main(String[] args) {
    int[] arr3 = { 5, 17, 21, 35, 3, 10, 7, 2, 31, 40, 80 };
    arr3 = selectionSort(arr3);
    print(arr3);
 }

 public static void print(int[] arr) {
    for (int num : arr) 
        System.out.print(num + " ");
    System.out.println();
 }  

 public static int[] selectionSort(int[] arr)
 {
     for (int i = arr.length - 1; i >= 0; i--)
     {
         int maxIndex = 0;
         for (int j = 1; j <= i; j++)
         {
             if (arr[j] > arr[maxIndex])
                 maxIndex = j;
         }
         int temp = arr[maxIndex];
         arr[maxIndex] = arr[i];
         arr[i] = temp;
     }
     return arr;

 }

此代码返回

(23 57 10 17 21 31 35 40 80)

所以我想添加一个新的数组元素,例如

(23 57 10 17 21 31 35 40 80 -- 83 98 100 )

3 个答案:

答案 0 :(得分:1)

尝试使用ArrayList,其对象为Integer 无论何时添加新对象,数组列表都会自行调整大小

ArrayList<Integer> numbers= new ArrayList<Integer>(); 然后numbers.add(Integer.valueOf(5));

在这里查看ArrayList类https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

答案 1 :(得分:1)

您可以使用java.lang.System.arraycopy()方法编写如下函数。

public static int[] addElement(int[] originalArray, int newElem){

    int[] elementArray = new int[]{newElem};
    int[] newArray = new int[originalArray.length + 1];

    System.arraycopy(originalArray,0, newArray,0, originalArray.length);
    System.arraycopy(elementArray,0, newArray, originalArray.length, 1);

    return newArray;
}

请查看this

答案 2 :(得分:0)

您无法更改现有阵列。

如果要动态添加/删除项目,请尝试使用List<Integer>