黑马程序员=======集合Collection

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

集合框架:collection

--List:元素是有序的,元素可以重复,因为该集合体系有索引

--ArrayList:底层使用数组结构;查询速度很快,增删较慢,线程不同步

--LinkList:底层使用链表结构;增删速度快,查询速度慢

--Vector:底层是数组数据结构,线程同步

--Set:元素无序,不可以重复

--HashSet:底层数据结构是哈希表

--TreeSet

这些容器对数据的存储方式都有所不同,所以将这些存储方式称之为数据结构

1.collection集合中的增删改查

import java.util.*;  
class CollectionDemo  
{  
   public static void main(String[] args)  
   {  
       ArrayList al=new ArrayList();    //创建一个集合容器  
  
       //添加元素  
       al.add("java01");  
       al.add("java02");  
       al.add("java03");  
       al.add("java04");  
  
       //获取个数,集合长度。  
       sop("size:"+al.size());  
  
      //打印集合  
      sop(al);  
  
      //删除元素  
      al.remove("java02");  
  
      //打印集合  
      sop(al);  
  
  
    //判断元素  
    sop(al.contains("java03"));  
    sop(al.isEmpty());  
  
    }  
      
     public static void method_2()  
   {  
       ArrayList al1=new ArrayList();  
         
       al1.add("java01");  
       al1.add("java02");  
       al1.add("java03");  
       al1.add("java04");  
  
       ArrayList al2=new ArrayList();  
         
       al2.add("java01");  
       al2.add("java02");  
       al2.add("java05");  
       al2.add("java06");  
  
       al1.retainAll(al2);  //取交集,al1中只保存和al2中相同的元素  
       al1.removeAll(al2);  //将al1中与al2相同的元素去掉  
  
       sop("al1:"+al1);  
       sop("al2:"+al2);  
    }  
  
  
    public static void sop(Object obj)  
    {  
       System.out.println(obj);  
     }  
}  
元素的取出:Iterator 迭代器

import java.util.*;  
class CollectionDemo2  
{  
    public static void main(String[] args)  
  
    {  
        getMethod();  
     }  
    public static void  getMethod()  
    {  
          
       ArrayList al=new ArrayList();    //创建一个集合容器  
  
       //添加元素  
       al.add("java01");  
       al.add("java02");  
       al.add("java03");  
       al.add("java04");  
  
    Iterator it=al.iterator();  //获取迭代器,用于取出集合中的元素  
      
    while(it.hasNext()) //判断是否有元素  
      {  
        sop(it.next()); //打印出元素   
      }  
    }  
    public static void sop(Object obj)  
    {  
       System.out.println(obj);  
    }  
}  
迭代器的for循环写法:

for(Iterator it=al.iterator;it.hasNext();  )  
{  
    sop(it.next());  
}  
Vector的枚举方法

import java.util.*;  
class VictorDemo  
{  
   public static void main(String[] args)  
   {  
       Vector va=new Vector();  
      
       va.add("java01");  
       va.add("java02");  
       va.add("java03");  
       va.add("java04");  
  
       Enumeration en=va.elements();    //枚举获取元素  
      
       while(en.hasMoreElements())  
       {  
              System.out.println(en.nextElement());  
        }  
    }  
}  

LinkedList :特有方法:addFirst,addLast;getFirst,getLast,获取元素,但不删除元素;removeFirst,removeLast获取元素,元素被删除

但当集合为空的时候,remove 和get都会产生异常,所以在JDK1.6有了替代办法,用offer替代add,用peek替代get,用poll替代remove,此时集合如果为空,返回null

import java.util.*;  
class LinkListDemo  
{  
   public static void main(String[] args)  
   {   
     LinkedList li=new LinkedList();    //新建一个LinkedList对象  
     li.addFirst("java01");     //将元素添加到第一个位置  
     li.addFirst("java02");  
     li.addFirst("java03");     //将元素添加到第一个位置  
     li.addFirst("java04");       
        
     sop(li.removeFirst());  
/* 
      while(!li.isEmpty()) 
      { 
         sop(li.removeFirst()); 
       } 
  */  
    }  
   public static void sop(Object obj)  
   {  
      System.out.println(obj);  
    }  
}  






你可能感兴趣的:(黑马程序员=======集合Collection)