程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java中刪除 數組中的指定元素辦法

java中刪除 數組中的指定元素辦法

編輯:關於JAVA

java中刪除 數組中的指定元素辦法。本站提示廣大學習愛好者:(java中刪除 數組中的指定元素辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是java中刪除 數組中的指定元素辦法正文


java中刪除 數組中的指定元素要如何來完成呢,假如各位關於這個算法不是很清楚可以和一同來看一篇關於java中刪除 數組中的指定元素的例子。

java的api中,並沒有提供刪除數組中元素的辦法。雖然數組是一個對象,不過並沒有提供add()、remove()或查找元素的辦法。這就是為什麼相似ArrayList和HashSet受歡送的緣由。

不過,我們要感激Apache Commons Utils,我們可以運用這個庫的ArrayUtils類來隨便的刪除數組中的元素。不過有一點需求留意,數組是在大小是固定的,這意味這我們刪除元素後,並不會增加數組的大小。

所以,我們只能創立一個新的數組,然後運用System.arrayCopy()辦法將剩下的元素拷貝到新的數組中。關於對象數組,我們還可以將數組轉化為List,然後運用List提供的辦法來刪除對象,然後再將List轉換為數組。

為了防止費事,我們運用第二種辦法:

我們運用Apache commons庫中的ArrayUtils類依據索引來刪除我們指定的元素。

Apache commons lang3下載地址:
http://commons.apache.org/proper/commons-lang/download_lang.cgi

下載好後,導入jar。

import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
/**
 *
 * Java program to show how to remove element from Array in Java
 * This program shows How to use Apache Commons ArrayUtils to delete
 * elements from primitive array.
 *
 */
public class RemoveObjectFromArray{
  public static void main(String args[]) {
         
    //let's create an array for demonstration purpose
    int[] test = new int[] { 101, 102, 103, 104, 105};
   
    System.out.println("Original Array : size : " test.length );
    System.out.println("Contents : " Arrays.toString(test));
   
    //let's remove or delete an element from Array using Apache Commons ArrayUtils
    test = ArrayUtils.remove(test, 2); //removing element at index 2
   
    //Size of array must be 1 less than original array after deleting an element
    System.out.println("Size of array after removing an element : " test.length);
    System.out.println("Content of Array after removing an object : "
              Arrays.toString(test));
   
  }
 
}
Output:
Original Array : size : 5
Contents : [101, 102, 103, 104, 105]
Size of array after removing an element : 4
Content of Array after removing an object : [101, 102, 104, 105]

當然,我們還有其他的辦法,不過運用曾經的庫或java api來完成,更疾速。

我們來看下ArrayUtils.remove(int[] array, int index)

辦法源代碼:

 public static int[] remove(int[] array, int index) {
    return (int[])((int[])remove((Object)array, index));
  }

在跳轉到remove((Object)array, index)) ,源代碼:

private static Object remove(Object array, int index) {
    int length = getLength(array);
    if(index >= 0 && index < length) {
      Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);
      System.arraycopy(array, 0, result, 0, index);
      if(index < length - 1) {
        System.arraycopy(array, index 1, result, index, length - index - 1);
      }
      return result;
    } else {
      throw new IndexOutOfBoundsException("Index: " index ", Length: " length);
    }
  }

這下明白了ArrayUtils的刪除數組中元素的原理了吧。其實還是要用到兩個數組,然後應用System.arraycopy()辦法,將除了要刪除的元素外的其他元素都拷貝到新的數組中,然後前往這個新的數組。

以上就是為大家帶來的java中刪除 數組中的指定元素辦法全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved