集合框架中的实现类-ArrayList
来源:互联网 发布:淘宝返利网站哪个最好 编辑:程序博客网 时间:2024/06/03 16:31
集合框架中的实现类-ArrayList
- ArrayList:我们可以将其看作是能够自动增长容量的数组;(file 1)
- 利用ArrayList的toArray()返回一个数组;(file 2)
- Array.asList()返回一个列表;(file 3)
- 迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素;(file 4)
## file 1 ##import java.util.*;class ALTest{ @SuppressWarnings("unchecked") public static void main(String[] args){ ArrayList<String> al = new ArrayList<String>(); //<String>可以不要,也能编译过,不过会提出警告,网上说的是jdk1.5以前没有泛型这个概念//泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型; al.add("zhangsan"); al.add("lisi"); al.add("wmz"); for(int i = 0;i < al.size(); i ++){ System.out.println(al.get(i)); } }}// source code:可以从源码看看,不深入分析,太多了,Arrays.copyOf是创建了一个新的数组对象代替原来的数组;所以add方法的自动增长,不是原来的数组的基础上,而是重新创建; public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! 用到了grow方法,最后调用了System.arraycopy elementData[size++] = e; return true; }private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); }public static short[] copyOf(short[] original, int newLength) { // 该方法包含了所有的返回类型,这只是其中的一种类型; short[] copy = new short[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }## file 2 ##import java.util.*;class ALTest{ public static void main(String[] args){ ArrayList al = new ArrayList(); al.add(new Point(3,3)); al.add(new Point(1,1)); al.add(new Point(2,2)); Object cl[] = al.toArray();/*source code: public Object[] toArray() { return Arrays.copyOf(elementData, size); }*/ for(int i = 0 ;i < cl.length;i++){ System.out.println(cl[i]); } }}class Point{ int x , y; Point(int x,int y){ this.x = x; this.y = y; } public String toString(){ return "x="+x+"y="+y; }}## file 3 ##import java.util.*;class ALTest{ public static void main(String[] args){ ArrayList al = new ArrayList(); al.add(new Point(3,3)); al.add(new Point(1,1)); al.add(new Point(2,2)); Object cl[] = al.toArray(); List l = Arrays.asList(cl);// @return a list view of the specified array System.out.println(l); }}class Point{ int x , y; Point(int x,int y){ this.x = x; this.y = y; } public String toString(){ return "x="+x+"y="+y; }}## file 4 ##import java.util.*;class ALTest{ public static void main(String[] args){ ArrayList al = new ArrayList(); al.add(new Point(3,3)); al.add(new Point(1,1)); al.add(new Point(2,2)); // Iterator 是接口,而Collection这个接口中有定义Iterator而后ArrayList有实现这个接口; Iterator i = al.iterator(); while(i.hasNext()){ System.out.println(i.next()); } }}class Point{ int x , y; Point(int x,int y){ this.x = x; this.y = y; } public String toString(){ return "x="+x+"y="+y; }}
0 0
- 集合框架中的实现类-ArrayList
- 集合实现类ArrayList
- 自己动手实现集合框架类(一)之ArrayList
- 集合框架 - ArrayList的实现原理
- 自定义实现Java中的ArrayList集合
- 集合:List实现类ArrayList
- 《java集合框架---------ArrayList》
- Java 集合框架-ArrayList
- Java集合框架:ArrayList
- Java集合框架:ArrayList
- java 集合框架-ArrayList
- Java集合框架-ArrayList
- java集合框架-ArrayList
- Java集合框架:ArrayList
- Java集合框架--ArrayList
- 集合框架—ArrayList集合
- 黑马程序员----集合框架中的ArrayList和HashSet
- 集合框架源码分析三(实现类篇ArrayList,LinkedList,HashMap)
- dwz的select下拉框不为空判断
- 关于angular.js基础学习
- 更新设置,session,token(PC,APP)
- POJ---2524 Ubiquitous Religions【并查集】
- 异常处理
- 集合框架中的实现类-ArrayList
- SKY13416_485LF_201679D天线开关
- @RequestParam @Param
- 基于Single-pass的文本话题聚类
- Jedis之ShardedJedis一致性哈希分析
- resulyType查到null,但是有结果条数
- mysql 5.7解压缩版安装教程,附无法启动的问题
- ASN.1探索 - 3 编码规则与传输语法(3
- shrio理解: