1.1 Java集合的概述      
      Java的集合类是一种特别有用的工具类,就像一种容器,可以用来存储数量不等(可改变)的多个对象,并可以实现常用数据结构,如栈、队列等。Java的集合大致分为:Set、List和Map三种体系,jdk1.5后增加了Queue体系集合代表一种队列。
   —— Set代表无序、不可重复的集合;类似一个罐子,里面是无序,注意的是不能有重复。
   —— List代表有序、重复的集合;非常像一个数据,每个元素有自己的顺序,只是List长度可变
   —— Map代表具有映射关系的集合;也类似一个罐子,但里面每个数据都由两部分组成。
     jdk1.5之前,Java集合会丢失所有对象的数据类型,把所有对象都当成Object类型处理,jdk1.5后增加了泛型,可以记住容器中对象的数据类型


数组与Java集合的比较 在编程中,常常需要集中存放多个数据。

      数组--我们可以用数组来存放,但数组长度一旦确定就不能变化,如果需要保存个数变化的数据,

              组无法做到;再有数组也无法保存具有映射关系的数据,如成绩表:高数-99,英语-100

Java集合--所以,为了保存数量不确定的数据,以及保存具有映射关系的数据,可以使用Java提供的

               集合类来解决。

    集合类和数组还不一样的是:数组保存的数据可以是基本类型的值,也可以是对象;而集合里只能保存对象。

    Java的集合类主要由两个根接口派生:Collection和Map(用于保存有映射关系数据),这两个接口底下包含了一些子接口或实现类,接口是不能直接new 自己来实例化的,所以使用集合类需要通过new对应的实现类来实例化。

Java集合——List 、Map、Set_第1张图片

Java集合——List 、Map、Set_第2张图片

1.2、基本使用      
List接口的应用:( Set接口应用类似List接口
   实例化方式:如果用的是接口,必须是用实现类来实例化:Collection c = new ArrayList( );    List list = new ArrayList( );
   add( )方法:每次添加一个数据元素,list.add("123");
   remove( )方法:删除指定元素,list.remove("123");
   size( )方法:取得集合里元素的个数,list.size( );
   clear( )方法:删除所有元素,list.clear();


使用Iterator接口遍历集合元素(也可用foreach循环遍历,更便捷)
   Iterator接口主要用于遍历Collection集合中的元素,也别称为迭代器。
   -hasNext():如果被迭代的集合元素还没被遍历,则返回true
   -next():返回集合里下一个元素
   -remove():删除集合里上一次next方法返回的元素
例子:
//创建一个集合
         Collection books = new ArrayList ();// 表示集合存放的是String类型数据
 books.add("1");
 books.add("2");
 books.add("3");
 //获取books集合的迭代器Iterator
 Iterator it = books.iterator();
 while(it.hasNext()){
    //注意next方法返回的是Object类型,所以必须强制转型
String book = (String)it.next();
System.out.println(book);
 }
         //使用foreach循环遍历
         for(String s : books){
               System.out.println(s);
         }

如果是使用List的话,List里的元素是有序的,所以List提供了get( )方法:可以直接通过索引遍历取得:
     for(int i = 0; i
          System.out.println(list.get(i));
     }

Map接口的应用:
  //通过HashMap实例化(HashTable是线程安全),表示key是整型value是字符串类型
    HashMap hm = new HashMap();
      //添加键值对key-value
      hm.put(1,"A");
      hm.put(2,"B");
     //根据key取值
      System.out.println(hm.get(1));
    //根据key删除
      hm.remove(1);
    /*
       for(Object key : hm.keySet()){
    System.out.println(hm.get(key));
}
   */