最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中刪除 數(shù)組中的指定元素方法

 更新時間:2017年01月12日 09:28:00   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava中刪除 數(shù)組中的指定元素方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

java中刪除 數(shù)組中的指定元素要如何來實(shí)現(xiàn)呢,如果各位對于這個算法不是很清楚可以和小編一起來看一篇關(guān)于java中刪除 數(shù)組中的指定元素的例子。

java的api中,并沒有提供刪除數(shù)組中元素的方法。雖然數(shù)組是一個對象,不過并沒有提供add()、remove()或查找元素的方法。這就是為什么類似ArrayList和HashSet受歡迎的原因。

不過,我們要感謝Apache Commons Utils,我們可以使用這個庫的ArrayUtils類來輕易的刪除數(shù)組中的元素。不過有一點(diǎn)需要注意,數(shù)組是在大小是固定的,這意味這我們刪除元素后,并不會減少數(shù)組的大小。

所以,我們只能創(chuàng)建一個新的數(shù)組,然后使用System.arrayCopy()方法將剩下的元素拷貝到新的數(shù)組中。對于對象數(shù)組,我們還可以將數(shù)組轉(zhuǎn)化為List,然后使用List提供的方法來刪除對象,然后再將List轉(zhuǎn)換為數(shù)組。

為了避免麻煩,我們使用第二種方法:

我們使用Apache commons庫中的ArrayUtils類根據(jù)索引來刪除我們指定的元素。

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

下載好后,導(dǎo)入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]

當(dāng)然,我們還有其他的方法,不過使用已經(jīng)的庫或java api來實(shí)現(xiàn),更快速。

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

方法源代碼:

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

在跳轉(zhuǎn)到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的刪除數(shù)組中元素的原理了吧。其實(shí)還是要用到兩個數(shù)組,然后利用System.arraycopy()方法,將除了要刪除的元素外的其他元素都拷貝到新的數(shù)組中,然后返回這個新的數(shù)組。

以上就是小編為大家?guī)淼膉ava中刪除 數(shù)組中的指定元素方法全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • java實(shí)現(xiàn)人工智能化屏幕監(jiān)控窗口

    java實(shí)現(xiàn)人工智能化屏幕監(jiān)控窗口

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)人工智能化屏幕監(jiān)控窗口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • java加載properties文件的六種方法總結(jié)

    java加載properties文件的六種方法總結(jié)

    這篇文章主要介紹了java加載properties文件的六種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Spring DevTools的介紹

    Spring DevTools的介紹

    今天小編就為大家分享一篇關(guān)于Spring DevTools的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • IntelliJ中高效重構(gòu)的10個快捷方式詳解

    IntelliJ中高效重構(gòu)的10個快捷方式詳解

    這篇文章主要為大家介紹了IntelliJ中高效重構(gòu)的10個快捷方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • WxJava微信公眾號開發(fā)入門實(shí)戰(zhàn)

    WxJava微信公眾號開發(fā)入門實(shí)戰(zhàn)

    本文主要介紹了WxJava微信公眾號開發(fā)入門實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • JavaCV實(shí)現(xiàn)照片馬賽克效果

    JavaCV實(shí)現(xiàn)照片馬賽克效果

    這篇文章主要介紹了如何通過JavaCV實(shí)現(xiàn)照片馬賽克效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)JavaCV有一定的幫助,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-01-01
  • Java編程實(shí)現(xiàn)月食簡單代碼分享

    Java編程實(shí)現(xiàn)月食簡單代碼分享

    這篇文章主要介紹了Java編程實(shí)現(xiàn)月食簡單代碼分享,程序很簡單,喜歡的朋友可以拿過去玩玩。
    2017-11-11
  • Java HtmlParse提取標(biāo)簽中的值操作

    Java HtmlParse提取標(biāo)簽中的值操作

    這篇文章主要介紹了Java HtmlParse提取標(biāo)簽中的值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 一篇看懂Java中的Unsafe類

    一篇看懂Java中的Unsafe類

    在閱讀AtomicInteger的源碼時,看到了這個類:sum.msic.Unsafe,之前從沒見過。所以花了點(diǎn)時間研究了下,下面這篇文章主要給大家介紹了關(guān)于Java中Unsafe類的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解

    Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解

    這篇文章主要介紹了Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例,注意這里的雙端鏈表不是雙向鏈表,是在單鏈表的基礎(chǔ)上保存有對最后一個鏈接點(diǎn)的引用,需要的朋友可以參考下
    2016-04-04

最新評論

桐柏县| 林芝县| 东辽县| 彭阳县| 三亚市| 河东区| 巨野县| 东源县| 泾阳县| 灵寿县| 柏乡县| 丰镇市| 岱山县| 阳朔县| 黔江区| 浦北县| 琼海市| 津市市| 武城县| 湖州市| 星子县| 西华县| 大冶市| 枞阳县| 邮箱| 巩留县| 武邑县| 伽师县| 米脂县| 桐梓县| 抚州市| 如东县| 丰原市| 新竹市| 富民县| 灵山县| 保定市| 金堂县| 林甸县| 米林县| 阿鲁科尔沁旗|