标签:tor 对象 ati [] img java基础 boolean lin aaa
ArrayList它是List接口的真正的实现类。也是我们开发中真正需要使用集合容器对象。
ArrayList类,它是List接口的实现。肯定拥有角标。并且可以存放重复元素,也能够使用List接口中的所有特有方法。ArrayList集合容器,它的底层使用的可变的数组作为存储元素的容器。
上述分析ArrayList底层的可变数组。这个可变数组也称为ArrayList集合的底层数据存储的结构(数据结构)。
ArrayList它的底层使用的可变数组:
它中增删效率相对较低。查询的效率较快。ArrayList它是JDK1.2出现的集合容器。它不保证数据的安全。
ArrayList中的方法全部来自于Collection和List接口。
List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。
LinkedList集合它是List接口的直接实现类。它实现了Collection和List接口中的所有方法。
LiknedList集合它的底层使用的链接列表:
LinkedList:集合底层使用的链表结构,由于链表有头和尾,因此在LinkedList集合中重新定义了新的方法,这些方法都是围绕链表的头和尾而设计的方法:
addFirst
addLast
removeFirst
removeLast
getFirst
getLast
链表结构可以完成数据结构中的部分结构的实现:
队列:先进先出,后进后出。最先 进入到结构中的数据,被最先取出。例如:排队买票,火车过山洞。
堆栈:先进后出,后进先出。例如:Java内存结构中的栈内存。手枪弹夹。
1 //模拟队列或者堆栈数据结构 2 class Queue{ 3 4 //定义一个LinkedList集合 5 private LinkedList list = new LinkedList(); 6 7 public void myAdd( Object obj ){ 8 list.addFirst(obj); 9 } 10 11 public Object myGet(){ 12 return list.removeLast(); 13 } 14 15 public boolean isEmpty(){ 16 return list.isEmpty(); 17 } 18 19 } 20 //测试类 21 public class LinkedListDemo2 { 22 public static void main(String[] args) { 23 24 Queue q = new Queue(); 25 26 q.myAdd("aaa"); 27 q.myAdd("bbb"); 28 q.myAdd("ccc"); 29 q.myAdd("ddd"); 30 31 while( !q.isEmpty() ){ 32 System.out.println(q.myGet()); 33 } 34 } 35 }
List:它下面的集合容器都有脚标,都可以使用角标或者ListIterator进行遍历。
ArrayList:它的底层是可变数组,增删慢,查询快。不安全。
LinkedList:它的底层是链表结构,有头和尾,可以模拟队列或者堆栈数据结构。增删快,查询慢。不安全
Vector集合是它JDK1.0时期就存在的一个集合容器对象。在JDK1.2的时候出现了集合体系,Vector变成List接口下的一个实现类。
Vector的底层使用的也是可变数组,和ArrayList底层一致。Vector它可以保证安全,因为它的什么效率都慢。
后期开发中看到Vector就可以直接把它看成ArrayList使用即可。
Vector中的方法名只要是和element相关的都是Vector的原生方法。其他的都是从Collection或者List接口中实现的。
1 /* 2 * 介绍古老的Vector集合 3 */ 4 public class VectorDemo { 5 public static void main(String[] args) { 6 7 //创建集合对象 8 Vector v = new Vector(); 9 10 v.addElement("aaa"); 11 v.addElement("aaa"); 12 v.addElement("abc"); 13 v.addElement("ccc"); 14 15 //遍历 16 for( Enumeration en = v.elements(); en.hasMoreElements() ; ){ 17 System.out.println(en.nextElement()); 18 } 19 20 for( Iterator it = v.iterator(); it.hasNext() ; ){ 21 System.out.println(it.next()); 22 } 23 } 24 }
Enumeration:它是Iterator的前身,也可以遍历集合容器。
但是由于它的功能和Iterator严重重复,并且Iterator中提供的方法名称比Enumeration中的方法名短。
开发中我们优先使用Iterator,而不使用Enumeration迭代集合。
JAVA基础--JAVA API集合框架(其他集合类,集合原理)15
标签:tor 对象 ati [] img java基础 boolean lin aaa
原文地址:http://www.cnblogs.com/Kubility123/p/7629259.html