1. 程式人生 > >Java ArrayList add(index,element) 方法插入元素到陣列指定位置

Java ArrayList add(index,element) 方法插入元素到陣列指定位置

今天在開發專案的過程中,準備使用ArrayList 的 add(index,element) 來插入元素,天真的以為這樣能給list排序

簡略程式碼如下:

List list = new ArrayList(50); list.add(0,element); list.add(2,element); list.add(1,element);

編譯執行之後丟擲了exception,百思不得其解,等到看了原始碼之後才發現原因,ArrayList  add(index,element)方法原始碼:

public void add(int index, E element) {
if (index > size || index < 0) throw new IndexOutOfBoundsException( "Index: "+index+", Size: "+size); ensureCapacity(size+1);  // Increments modCount!! System.arraycopy(elementData, index, elementData, index + 1, size - index); elementData[index] = element; size++; }

從程式碼中可以看出,當陣列中的元素個數(size)小於index的時候,此方法是會丟擲異常的。

所以此方法只適用於想要插入的位置小於陣列中實際元素個數的時候才有作用。

也就是說,讓list裡面沒有元素時,想通過插入元素到指定位置來達到排序的效果是不可行的。

相關推薦

Java ArrayList add(index,element) 方法插入元素陣列指定位置

今天在開發專案的過程中,準備使用ArrayList 的 add(index,element) 來插入元素,天真的以為這樣能給list排序 簡略程式碼如下: List list = new Ar

Java——List:list.add(index, element)和list.set(index, element)的區別

add(index, element) 含義:在集合索引為index的位置上增加一個元素element,集合list改變後list.size()會增加1 用法 testList.add(index, element); set(index, element)

jQuery之.each( function(index, Element) )方法詳解+練習

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/java

java在list集合指定位置插入物件和js在陣列指定位置插入物件的方法

java 向集合指定位置插入一條資料: List<String> list =new ArrayList<>(); list.add("a"); list.add("b");

JS 在陣列指定位置插入/刪除資料的方法

splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。 語法: arrayObject.splice(index,howmany,item1,.....,itemX) 引數說明 引數 描述

Array.splice() 刪除陣列指定位置指定個數的元素。並可插入元素

定義: splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。 語法: ArrayObject.splice(index,howmany,item1,.....,itemX) index 必需。整數,規定新增/刪除專案的位置,使用負數可從陣列結

JS 字串操作函式 往指定位置插入字元 刪除指定位置字元 替換指定位置字元

刪除指定字元 var str="xxxxxxxxabcxxxxxxxxxxxx"; var pattern = "abc"; str = str.replace(new RegExp(pattern), ""); console.log(str); 執行結果就是xxxxxxxxxxxxxxxxx

java 連結串列操作,刪除尾結點,指定位置結點

這兩天隨便看了看 java 的連結串列,發現了一些有意思的事情。 一個單向連邊一般只有一個頭結點,頭結點的結點指向,然後是連結串列的大小了。 若要對其他結點進行操作,必須對連結串列進行遍歷,找到這個結點,然後進行相關操作。 遍歷的程式碼一般是: fo

Java ArrayList 不為人知的陷阱,及add(int index, E element)和set(int index, E element)兩個方法的說明

一般使用List集合,估計都是使用這個ArrayList,一般呢也就是簡單遍歷資料和儲存資料。 很少使用到add(int index, E element)和set(int index, E eleme

Java----- ArrayList構造、add、remove、clear方法實現原理原始碼分析

一.ArrayList內部的實現方式 ArrayList內部是通過Object[]實現的。 二.原始碼分析: (1).構造方法 public ArrayList() { array = EmptyArray.OBJECT; } p

使用ArrayList集合,對其新增100個不同的元素: 1.使用add()方法元素新增到ArrayList集合物件中; 2.呼叫集合的iterator()方法獲得Iterator物件,並呼叫Ite

import java.util.*; public class Example { public static void main(String[] args) { ArrayList list=new ArrayList(); System.out.print

Java ArrayList正確循環添加刪除元素方法及分析

有一個 修改 如何 dash 沒有 過濾 src 情況下 for循環 在阿裏巴巴Java開發手冊中,有這樣一條規定: 但是手冊中並沒有給出具體原因,本文就來深入分析一下該規定背後的思考。 1 foreach循環 foreach循環(Foreach loop

java 遍歷arrayList的四種方法

void 線程安全 接口 線程同步 object類 轉型 依次 調用 values package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.Lis

JAVA中循環刪除list中元素方法總結

tor 循環 toolbar i++ 使用 修改 log span .get  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳

Java循環中刪除list中元素方法的總結

bar del mov als lis remove for for循環 技術 JAVA中循環遍歷list有三種方式for循環、增強for循環(也就是常說的foreach循環)、iterator遍歷。 1、for循環遍歷list for(int i=0;i<li

jdk 1.8下 java ArrayList 添加元素解析

正常 信息 jdk 1.7 integer 原來 logs tac pyo 最小 轉載請註明http://www.cnblogs.com/majianming/p/8006452.html 有人問我,java ArrayList底層是怎麽實現的?我就回答數組,他再問我,那

ArrayList.add() 方法吉林快-三平臺出租源碼解析

結束 === pty list集合 測試 中轉 extends getc .class 吉林快-三平臺出租Q1446595067解析源碼的方法>>> list.add("hello"); 該方法涉及到的方法被我復制到了一個類中,至於解

JAVA中循環刪除list中元素方法總結(跳格刪除問題解決)(轉)

今天 src log 觸發 導致 spi als exceptio spa  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至

Arrays.asList 使用add 和remove方法 出現java.lang.UnsupportedOperationException

陣列轉化集合 陣列轉化為集合時 Java有提供相應的工具類方法 Arrays.asList()方法 但是當使用Arrays.asList()方法,會可能出現一些操作問題。 先分析一下該方法原始碼: @SafeVarargs public static <

JAVA:ArrayList常用方法+底層原始碼分析

Arraylist特點:動態開闢,初始容量為10,只能放引用資料型別 ArrayList<Integer> arrayList=new ArrayList<Integer>(); Arraylist增加元素,自增擴容方式1.5倍,Arrays.copyof