JAVA-集合Collection初步认识:Lis…

来源:互联网 发布:mac 迅雷怎么断点下载 编辑:程序博客网 时间:2024/05/01 03:25

集合存放的都是对象的引用。
Collection:
 |——List:列表,每个元素都有自己的角标,可以存入重复的元素,有序(存入的和取出的顺序一致).
  特有方法:
  添加:add(index, Element)
  获取:get(index),iterator()
  修改:set(index,Element)
  删除:remove(index)
  |——ArrayList:JDK1.2出现,底层使用的数组数据结构.线程不安全的,此实现不是同步的,效率高;查询速度快
  |--Vector(少用):JDK1.0出现,1.2融合到collection中,底层页是使用数组数据结构.线程安全,实现是同步的,效率低,被ArrayList替代.查询速度快
  |--LinkedList:底层是链表数据结构。增删速度很快,查询组度慢.
  |--...
 |--Set
 |--...

import java.util.*;
class ListDemo
{
 public static void main(String[] args)
  
  ArrayList lst = newArrayList();
  
  lst.add("abc");
  lst.add("def");
  lst.add("hi");

  lst.add(0, "hahaha");
  lst.remove(2);
  lst.set(1,"sx");

  System.out.println("—-get方法遍历ArrayList——");
  printList(lst);
  System.out.println("——使用Iterator遍历ArrayList——");
  printListByIterator(lst);

  //通过Enumeration接口实现ArrayList的输出.优先使用Iterator.
  System.out.println("——使用Enumeration接口遍历ArrayList——");
  final Iterator it =lst.iterator();  //匿名内部类访问局部成员,需要用final修饰
  Enumeration er = newEnumeration()
  {
   publicboolean hasMoreElements()
   {
    returnit.hasNext();
   }
   public ObjectnextElement()
   {
    returnit.next();
   }
  };
  
  //熟悉Vector特有方法:
  Vector v = new Vector();
  v.addElement("a");
  v.addElement("b");
  v.addElement("c");
  v.addElement("d");

  System.out.println("—-get方法遍历Vector——");
  printList(v);
  System.out.println("——使用Iterator遍历Vector——");
  printListByIterator(v);
  //通过Enumeration接口实现ArrayList的输出.优先使用Iterator.
  System.out.println("——使用Enumeration遍历Vector——");
  for (Enumeration en =v.elements(); en.hasMoreElements(); )
  {
   System.out.println(en.nextElement());
  }
  
 }

 public static void printListByIterator(Listlst)
 {
  //Iterator it =lst.iterator();  
  //while(it.hasNext())
  //{
   //System.out.println(it.next());
  //}
  //迭代器更优化的写法:
  for (Iterator it1 =lst.iterator(); it1.hasNext(); )
  {
   System.out.println(it1.next());
  }
  
  //区别:while循环,循环完成后,对象it可能需要很长的时间,才能被回收。
    //  for循环,循环完成后,对象立即成为垃圾,被回收.

 }

 public static void printList(List lst)
 {
  for (int x = 0; x< lst.size(); x++)
  {
   System.out.println("lst["+x+"]="+lst.get(x));
  }
  System.out.println("size:"+lst.size());
 
}

原创粉丝点击