标签:
1.集合存在的理由
数据多了用对象存,对象多了用集合存!
它是变长的,可以接受各种不同的对象,是数组不能替代的!
2.大致结构
3.各子类数据结构:所以有什么特性自然明了
ArrayList:数组
LinkedList:双向非循环链表
4.父接口Collection都干了什么事
5.List子接口都干了什么事
6.ArraylList
1 package collection; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.ListIterator; 6 7 8 9 /** 10 * ArrayList的使用,注意iterator和listIterator 11 */ 12 public class ArrayListDemo { 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 // 构造初始容量为15的空列表 17 ArrayList al=new ArrayList(15); 18 19 // 添加 20 al.add("hi_one"); 21 al.add("hi_two"); 22 al.add(1,"hi_three"); 23 al.add("hi_one"); 24 25 // 删除 26 ArrayList bl=new ArrayList(al); 27 // bl.removeRange(1,2);//不可用!!protected,继承了的子类可以使用该方法 28 sop("start "+"bl="+bl+"\n"); 29 bl.remove(1); 30 bl.remove("hi_one"); 31 32 // 修改 33 bl.set(0, "hi"); 34 35 // 查找 36 String s=(String) al.get(1); 37 int index=al.lastIndexOf("hi_one"); 38 sop("later "+"bl="+bl+"\n"); 39 40 sop("\n"+"start:"+"al"+"\n"); 41 // 迭代器 itrator()返回一个内部类对象,该对象封装了迭代操作方法hasNext(),next(),remove() 42 for(Iterator it=al.iterator();it.hasNext();){ 43 // 在使用迭代操作集合时,就不要用集合本身的方法操作数据,否则可能 44 // java.util.ConcurrentModificationException异常 45 // 所以,即使能够获取到元素,也没有add(),set()方法!!! 46 sop(it.next()); 47 } 48 // List子类特有迭代器listIterator(),增加方法: 49 // add();hasPrevious();previous();previousIndex();nextIndex();set() 50 ListIterator lt=al.listIterator(); 51 sop("\n"+"later:"+"al逆向遍历,并将元素后面添加!"+"\n"); 52 53 //逆向遍历,并将元素后面添加! 54 while(lt.hasNext()){ 55 Object obj=lt.next();//常用方式 56 lt.set(obj+"!"); 57 } 58 while(lt.hasPrevious()){ 59 sop(lt.previous()); 60 } 61 62 63 } 64 public static void sop(Object obj){ 65 System.out.println(obj); 66 } 67 68 }
7.LinkedList
8.Set接口都干了什么事
9.HashSet
10.SortedSet
标签:
原文地址:http://www.cnblogs.com/erhai/p/4724553.html