我有一个数组 String []s 怎么删除它的最后一个元素????再一个问题怎么把元素加到数组制定位置????

解决方案 »

  1.   

    转换为ArrayList,然后remove(int index, E element)  ;
    add(int index, E element) 
    http://blog.chinaunix.net/u2/69663/showart_1003481.html
      

  2.   

    数组是定长的.
    你可以通过 s[s.length-1] = null;来清除数组s最后一个元素的内容.但是数组实际长度并不变.如果你想获得一个长度减一的元素,需要先定义一个长度减一的数组,然后使用使用System.arraycopy复制前n-1一个元素即可.要修改指定位置元素直接s[n] = x,即可.
      

  3.   

    一个字符串数组在new完之后,它的大小就是确定的了.
    不能改变大小.
    可以改变 s的最后一个元素的引用而不是删除
    s[s.length-1]=null;
    s[s.length-1]="";
    不可以在数组中间插入,而只能覆盖.如果想用可变数组 用ArrayList,或LinkedList
      

  4.   

    String[] strs=new String[]{"a","b","c","d","e"};
    String[] new_strs=new String[strs.length-1];

    System.arraycopy(strs, 0, new_strs, 0, 4);
    把元素加入指定位置:
    指定位置:n
    新创建一个足够大小的数组,new_array[n-1]=element;
    把原数组以n-1为分割点分别”复制“到数组n-1位置的”2边“
      

  5.   

    public class Main {
    public static void main(String[] args) {
    String[] arr = new String[10];
    //随便生成一个数组
    for(int i=0; i<arr.length; i++) {
    arr[i] = "arr" + i;
    }
    print(arr);
    arr = insert(arr,5,"liu");
    print(arr);
    arr = delete(arr,5);
    print(arr);
    }

    /**
     * 
     * @param arr 源数组
     * @param index 要插入的位置
     * @param str 要插入的内容
     * @return 插入后的数组
     */
    private static String[] insert(String[] arr, int index, String str) {
    if(index <0 || index > arr.length) {
    System.out.println("插入的索引超出了范围!");
    return arr;
    }
    String[] temp = new String[arr.length + 1];
    for(int i=0; i<index; i++) {
    temp[i] = arr[i];
    }
    temp[index] = str;
    for(int i=index+1; i<temp.length; i++) {
    temp[i] = arr[i-1];
    }
    return temp;
    }

    /**
     * 
     * @param arr 源数组
     * @param index 删除的索引
     * @return 返回删除后的数组
     */
    private static String[] delete(String[] arr, int index) {
    if(index < 0 || index >= arr.length) {
    System.out.println("删除的索引超出了范围");
    return arr;
    }
    boolean flag = false;
    String[] temp = new String[arr.length - 1];
    for(int i=0; i<temp.length; i++) {
    if(i == index) {
    flag = true;
    continue;
    }
    temp[i] = arr[i];
    }
    if(flag) {
    temp[index] = arr[arr.length - 1];
    }
    return temp;
    }

    /**
     * 打印数组
     * @param arr 要打印的数组
     */
    private static void print(String[] arr) {
    StringBuffer sb = new StringBuffer();
    for(int i=0; i<arr.length; i++) {
    sb.append(arr[i] + ",");
    }
    System.out.println(sb.substring(0, sb.length() - 1));
    }
    }
      

  6.   

    Arrays.asList(s)将数组转换为List
      

  7.   

    使用Arrays.copyOf(),具体看jdk apiimport java.util.*;public class Test { public static void main(String[] args) {
    String[] s = new String[10];
    for (int i = 0; i < 10; i++)
    s[i] = new String("abc");
    s = Arrays.copyOf(s, s.length - 1);
    for (String str : s) 
    System.out.println(str);
    }
    }