深入理解java集合框架之---------Arraylist集合 -----添加方法
Arraylist集合 -----添加方法
1、add(E e) 向集合中添加元素
/*** 检查数组容量是否够用* @param minCapacity*/public void ensureCapacity(int minCapacity){modCount++;int oldCapacity = elementData.length;if(minCapacity > oldCapacity){Object oldData[] = elementData;int newCapacity = (oldCapacity * 3)/2+1;if(newCapacity < minCapacity){newCapacity = minCapacity;elementData = Arrays.copyOf(elementData, newCapacity);}}}
/* (non-Javadoc)* 向ArrayList中添加元素* @see java.util.AbstractList#add(java.lang.Object)*/public boolean add(E e){ensureCapacity(size+1);elementData[size++] = e;return true;}
2、add(int index ,E e) 向集合的指定索引处添加元素
/*** Inserts the specified element at the specified position in this* list. Shifts the element currently at that position (if any) and* any subsequent elements to the right (adds one to their indices).** @param index index at which the specified element is to be inserted* @param element element to be inserted* @throws IndexOutOfBoundsException {@inheritDoc}*/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++;}
3、addAll(Collection< ? extends E> c) 添加集合
/* * 添加元素集合* (non-Javadoc)* @see java.util.AbstractCollection#addAll(java.util.Collection)*/public boolean addAll(Collection<? extends E> c){Object[] a = c.toArray();int numNew = a.length;ensureCapacity(size+numNew);System.arraycopy(a, 0, elementData, size, numNew);size+=numNew;return numNew!=0;}
4、addAll(int index, Collection<? extends E> c); 在指定索引出添加集合
public boolean addAll(int index, Collection<? extends E> c) {if (index > size || index < 0)throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);Object[] a = c.toArray();int numNew = a.length;ensureCapacity(size + numNew); // Increments modCountint numMoved = size - index;if (numMoved > 0)System.arraycopy(elementData, index, elementData, index + numNew,numMoved);System.arraycopy(a, 0, elementData, index, numNew);size += numNew;return numNew != 0;}
转载于:https://www.cnblogs.com/hanxue112253/p/9537709.html
深入理解java集合框架之---------Arraylist集合 -----添加方法相关推荐
- java集合的添加方法_深入理解java集合框架之---------Arraylist集合 -----添加方法
Arraylist集合 -----添加方法 1.add(E e) 向集合中添加元素 /** * 检查数组容量是否够用 * @param minCapacity */ public void ensur ...
- 集合框架之ArrayList集合
ArrayList集合的介绍与应用 import java.util.ArrayList; public class TextArraryList { public static void main( ...
- java arraylist 构造_深入理解java集合框架之---------Arraylist集合 -----构造函数
ArrayList有三个构造方法 ArrayList有三个常量 1.private transient Object[] elementData (数组); 2.private int size (元 ...
- 集合框架(去除ArrayList集合中的重复字符串元素案例2)
package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * 需求:ArrayList去除集合中字 ...
- 14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
本篇主要是集合框架基础和List集合,Map集合等等后续更 集合 14.1 集合框架 14.1.1 概念 14.1.2 集合架构 14.2 Collection接口 14.2.1 常用方法 14.3 ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合
I学霸官方免费教程三十三:Java集合框架之Map集合 Map接口 Map集合采用键值对(key-value)的方式存储数据,其中键不可以重复.值可以重复. 常用类有HashMap.TreeMap和P ...
- 深入理解Java并发框架AQS系列(四):共享锁(Shared Lock)
深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 深入理解Java并发框架AQS系列(三):独占锁(Exclusive Lock) 深入 ...
- 【Java集合框架】ArrayList类方法简明解析(举例说明)
本文目录 1.API与Java集合框架 2.ArrayList类方法解析 2.1 add() 2.2 addAll() 2.3 clear() 2.4 clone() 2.5 contains() 2 ...
最新文章
- Spacebuilder在Mono上运行修改备忘
- jvm性能调优实战 -33每日百亿数据量的实时分析引擎,如何定位和解决频繁Full GC问题
- 【nodejs笔记3】Express基本用法,和路由控制,和模板渲染ejs
- SuperSet连接Hive失败(客户端报日志拒绝连接)
- Eigen 简明教程之如何从Python转到Eigen
- Android 自动化测试框架简介
- java socket长连接怎么维持_socket长连接的维持
- php sizeof函数,sizeof()的简单介绍
- SuperWebSocket发布了第一个测试版
- ubuntu16中,google浏览器安装OneNote Web Clipper插件
- java 首字母小写转换_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...
- dom影像图形成数字地形图_数字地形图等高线怎么生成(海地软件地形图数字化高层数据层怎么选择,在哪里...)...
- MFC程序版本自动升级更新
- feedburner怎么用_新手RSS订阅使用指南
- 【selenium标签页操作】:关闭标签页
- 使用h5制作一个五子棋游戏
- 【深度访问】Cocos2d-JS精品《航海王启航》:我们是要成为游戏王的团队
- 基于单片机的智能宠物喂食器设计
- RxSwift系列—Driver
- 微信支付SDK的使用
热门文章
- 百度怎么进行模糊搜索_怎么在百度上准确搜索,提高10倍效率?
- 利用Python进行数据分析--数据聚合与分组运算1
- 逻辑回归与梯度下降法
- 过程语句 oracle,Oracle 过程控制语句整理
- 2清空所有表_mysql数据库学习(第十二篇) - 数据高级操作(2)
- WFDB软件包简介——ECG数据在Matlab下的读取/显示方法
- python 输出log_python:logging模块(记录打印日志)
- 网易用户认证架构设计 | session token | 公开课笔记-01
- 原生html如何发送网络请求,原生JS向服务器发送GET请求
- maven生命周期入门