码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础--JAVA API集合框架(其他集合类,集合原理)15

时间:2017-10-05 16:15:22      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:tor   对象   ati   []   img   java基础   boolean   lin   aaa   

一、ArrayList介绍

  1.ArrayList介绍   

    ArrayList它是List接口的真正的实现类。也是我们开发中真正需要使用集合容器对象。

     技术分享   

     ArrayList类,它是List接口的实现。肯定拥有角标。并且可以存放重复元素,也能够使用List接口中的所有特有方法。ArrayList集合容器,它的底层使用的可变的数组作为存储元素的容器。

      技术分享   

      上述分析ArrayList底层的可变数组。这个可变数组也称为ArrayList集合的底层数据存储的结构(数据结构)。      

      ArrayList它的底层使用的可变数组:

               它中增删效率相对较低。查询的效率较快。ArrayList它是JDK1.2出现的集合容器。它不保证数据的安全

    2. ArrayList的构造方法和方法介绍

    技术分享 

    ArrayList中的方法全部来自于Collection和List接口。

二、LinkedList 介绍

    技术分享

    List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。

    除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 getremoveinsert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列双端队列

    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接口下的集合总结: 

List:它下面的集合容器都有脚标,都可以使用角标或者ListIterator进行遍历。

ArrayList:它的底层是可变数组,增删慢,查询快。不安全。

LinkedList:它的底层是链表结构,有头和尾,可以模拟队列或者堆栈数据结构。增删快,查询慢。不安全

四、Vetor集合

  1.Vector介绍 

  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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!