氟塑料离心泵www.buybeng.com

jquery教程http://www.software8.co/wzjs/jquery/

JAVA基础 之 List

概述:

    1.有序的(序号(索引)的序,不是顺序的序,相对Set对比产生的说法),可重复集合

    2.List是Collection的子接口,所以List可以使用Collection全部方法。(见本人博客相关文章)

    3.除此之外List还有自己特殊的方法,索引相关的操作(本文重点做这部分的介绍)

    4.删除的时候防止 躺着中枪   

    5.ListIterator:专门操作list的迭代器(本例未做详解,有兴趣请看api)

    6.两个基本实现类 ArrayList(非线程安全) 和 Vector(线程安全)

       1.Vector是一个古老的遗留类(性能差),不推荐使用。

       2.Vector(Stack) 栈数据结构,使用LinkedList代替

    7.Arrays.ArrayList是一个长度固定的List,只能遍历不能 操作

    8.LinkedList

       1.可以用来做双端队列和栈

       2.由于以链表形式保存,所以随机访问性能较差,但是迭代,插入、删除的性能比较好,因为可以直接改变指针所指地址(数据结构知识)

Java代码:  
  1. package com.cxy.collection;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.Arrays;  
  5. import java.util.LinkedList;  
  6. import java.util.List;  
  7.   
  8. /** 
  9.  * @author cxy 
  10.  */  
  11. public class ListTest  
  12. {  
  13.     public static void main(String[] args)  
  14.     {  
  15.         List l=new ArrayList();  
  16.         l.add("幼儿园");  
  17.        l.add("小学");  
  18.         l.add("幼儿园");  
  19.         l.add("中学");  
  20.         l.add("大学");  
  21.         System.out.println(l);  //可以看出可以有重复数据  
  22.           
  23.         System.out.println("索引为3的元素是:"+l.get(3));  
  24.           
  25.         System.out.println("幼儿园第一次出现的索引:"+l.indexOf("幼儿园"));  
  26.         System.out.println("幼儿园第最后一次出现的索引:"+l.lastIndexOf("幼儿园"));  
  27.           
  28.         l.set(3"初中");  //类似修改操作   
  29.         l.add(4,"高中");   //插入  
  30.         System.out.println(l);  
  31.           
  32.         l.remove("幼儿园"); //会删除第一个找到的 幼儿园  
  33.         System.out.println(l);  
  34.         l.remove(new AA()); //由于AA的equals方法返回true,导致第一个元素被误认为是和AA相等的,于是躺着就中枪了  
  35.         System.out.println(l);  
  36.         l.remove(new BB()); //BB的equals方法返回false,所以List没有找到相等的元素删除。  
  37.         System.out.println(l);  
  38.         l.remove(0);  //通过序号删除  
  39.         System.out.println(l);           
  40.         ArrayList l1=new ArrayList();  
  41.         l1.ensureCapacity(64); //大的数据集合,使用这个方法一次分配好空间,避免频繁多次分配,提高性能  
  42.         l1.trimToSize();  //调整至使用空间大小,避免内存浪费。  
  43.           
  44.         try  
  45.         {  
  46.             List temp = Arrays.asList("小学","中学","大学");  
  47.             temp.remove(0);  
  48.         }catch(Exception e)  
  49.         {  
  50.             System.out.println("temp是一个固定长度的list,只能遍历不能操作");  
  51.         }  
  52.           
  53.         LinkedList ll = new LinkedList();  
  54.         ll.add("aaa");  
  55.         ll.add("bbb");  
  56.         ll.add("ccc");  
  57.         ll.add("ddd");  
  58.         System.out.println("原始:"+ll);  
  59.         ll.addLast("zzz");  //队列--入队  
  60.         ll.removeFirst(); //队列--出队  
  61.         System.out.println("队列操作:"+ll);  
  62.         ll.addFirst("kkk"); //栈--入栈  
  63.         System.out.println("kkk入栈:"+ll);  
  64.         ll.removeFirst(); //栈--出栈  
  65.         System.out.println("kkk出栈:"+ll);  
  66.         ll.removeLast();  //体现双端队列  
  67.         System.out.println("=========================");  
  68.         ll = new LinkedList();  
  69.         ll.add("aaa");  
  70.         ll.add("bbb");  
  71.         ll.add("ccc");  
  72.         ll.add("ddd");  
  73.         System.out.println("重新初始化:"+ll);  
  74.         ll.push("kkk");  //栈--入栈  
  75.         System.out.println("kkk入栈:"+ll);  
  76.         ll.pop();  //栈--出栈  
  77.         System.out.println("kkk出栈:"+ll);  
  78.           
  79.         ll.offer(""); //队列--入队  
  80.         ll.offerFirst("");  //返回true的addFirst  
  81.         ll.offerLast("");  //返回true的addLast  
  82.           
  83.         ll.poll(); //获取并删除第一个  
  84.         ll.pollFirst();  //获取并删除第一个  
  85.        ll.pollLast();  //获取并删除最后一个  
  86.           
  87.         ll.peekFirst(); //获取不删除第一个  
  88.         ll.peekLast();  //获取不删除最后一个  
  89.           
  90.         ll.removeFirstOccurrence("aaa"); //删除第一个出现的aaa  
  91.         ll.removeLastOccurrence("aaa"); //删除最后一个出现的aaa  
  92.     }  
  93. }  
  94.   
  95.   
  96. class AA  
  97. {  
  98.     @Override  
  99.     public boolean equals(Object obj)  
  100.     {  
  101.         return true;  
  102.     }  
  103. }  
  104.   
  105. class BB  
  106. {  
  107.     @Override  
  108.     public boolean equals(Object obj)  
  109.     {  
  110.         return false;  
  111.     }  
  112. }  

扩展阅读:JAVA基础 之 Set     JAVA基础 之 Collections

posted on 2013-02-24 16:43 你爸是李刚 阅读(1427) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年2月>
272829303112
3456789
10111213141516
17181920212223
242526272812
3456789

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机