List 基本用法之插入到指定位置
来源:互联网 发布:战舰世界青叶数据 编辑:程序博客网 时间:2024/05/20 18:48
源码
public interface List<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean addAll(int index, Collection<? extends E> c);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
void clear();
boolean equals(Object o);
int hashCode();
E get(int index);
E set(int index, E element);
void add(int index, E element);//添加指定位置
E remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
ListIterator<E> listIterator();
ListIterator<E> listIterator(int index);
List<E> subList(int fromIndex, int toIndex);
}
实现类ArrayList 实现方式
public void add(int index, E element) {
//判断索引位置是否正确
if (index > size || index < 0)
throw new IndexOutOfBoundsException(
"Index: "+index+", Size: "+size);
//扩容检测
ensureCapacity(size+1);
/*
* 对源数组进行复制处理(位移),从index + 1到size-index。
* 主要目的就是空出index位置供数据插入,
* 即向右移动当前位于该位置的元素以及所有后续元素。
*/
System.arraycopy(elementData, index, elementData, index + 1,
size - index);
//在指定位置赋值
elementData[index] = element;
size++;
}
在这个方法中最根本的方法就是System.arraycopy()方法,该方法的根本目的就是将index位置空出来以供新数据插入,这里需要进行数组数据的右移,这是非常麻烦和耗时的,所以如果指定的数据集合需要进行大量插入(中间插入)操作,推荐使用LinkedList。
- List 基本用法之插入到指定位置
- VC插入sheet页到指定位置
- dom4j插入节点到指定位置
- 将字符串插入到指定位置
- 插入数据到excle的指定位置
- 插入新结点到指定结点的指定位置
- pyghon list指定位置插入字符的方法
- JS插入今明日期文本到指定光标位置
- python插入内容到指定文件的位置
- Javascript实现将元素插入到指定位置
- 将数据插入到集合的指定位置
- 将字符串插入到另一个字符串的指定位置
- oj-15-G-将字符串插入到指定位置
- java 写数据时候,插入到指定行的位置
- JqGrid 实现将数据按规则插入到指定位置
- 字符串指定位置插入
- java在list集合指定位置插入对象和js在数组指定位置插入对象的方法
- android之list基本用法
- Unity3D项目优化文档
- vxWorks中发现的diable和gnule编译器的一些区别
- java 中几种常用数据结构
- 多行注释代码
- 在一台ubuntu的arm板子上学习arm汇编
- List 基本用法之插入到指定位置
- Shell
- JQUERY右侧悬浮返回顶部代码
- 四、JSP之JSP状态管理
- mysql触发器使用方法
- Asp.Net公用类之图片处理类
- JDBC事务和JTA事务
- jQuery简易表单验证插件(可链式操作)
- Description Resource Path Location Type Project configuration is not up-to-d