Java 集合类

来源:互联网 发布:ipad 电容笔 知乎 编辑:程序博客网 时间:2024/06/04 20:14

①.Collection接口


 ① 一般称 Collection 为集合,集合可理解为一个动态的对象数组,与数组不同的是 集合中的对象个数可以任意扩充,因此容易添加或者删除,性能高且扩展性比较好。


 ② Collection常用的子接口:List接口       Set接口Queue接口...



②.List接口  (Collection的一个子接口)


①List接口可以存放任意数据,重要的一点:List接口中的内容是可以重复的。

②List接口常用的子类:ArrayList类     Vector类

③常用操作: add   isEmpty   clear  indexOf(用于判断某元素是否存在)

  ④示例:

List<String>  list  =  new ArrayList<String>();  //List接口不能实例化,需实例化其子类。

// 或 List<String>  list  =  new Vector<String>();

        list.add("Hello");        // 添加对象内容/元素。

System.out.println(list.get(0));  //获取元素并打印 

        //更多详见API

⑤ ArrayList 与 Vector 的区别
    
             ArrayList性能高,但线程安全低。Vector性能低,但线程安全高。




③.Set接口  (Collection的一个子接口)


① Set接口中不能加入重复元素,元素存放的顺序 不一定 跟 元素被添加先后的顺序 一致 。

② Set接口的两个常用子类: 

HashSet  (散列存放)不可排序

                TreeSet   (有序存放)可排序

③常用操作: add   isEmpty  clear  indexOf(用于判断某元素是否存在)....
④ 示例①: 

     Set<String>  s = new HashSet<String>();

     s.add("A");   s.add("B");   s.add("D");   s.add("E");   s.add("F");   s.add("C");  

     System.out.println(s.toString()); // 存放元素的顺序 与 散列算法有关。
       
             示例②:
Set<String>  s = new TreeSet<String>();

     s.add("A");   s.add("B");   s.add("D");   s.add("E");   s.add("F");   s.add("C");  

     System.out.println(s.toString()); // 存放元素的顺序 已经根据字母顺序排序好
     

④.Iterator接口 


① Iterator 接口是 集合 输出 的标准操作 ,一般使用Iterator来实现集合元素的输出。(Iterator : 迭代器)

② Iterator 是一个专门的迭代输出接口,迭代输出就是将一个个元素进行判断,判断其是否有内容,如果有内容则

     取出内容。

③三个方法:

① hasNext();   如果仍有元素可以迭代,则返回true,否则返回false。

② next();  取出迭代器的下一个元素并返回。

③ remove(); 从迭代器的Collection 移除 迭代器 当前 所取出的元素。

④ 以ArrayList集合为例:

       
       List<String>  list = new ArrayList<String>();


    list.add("A");   list.add("B");   list.add("C"); 


    Iterator iter = list.iterator(); // 获取集合的迭代器实例。


    while(iter.hasNext()){                                        //判断迭代器中是否还有元素
     
    String str = (String) iter.next();// 从迭代器取出元素

 // ⑤的错误示范list.remove(0);

                         if(str.equals("B")) iter.remove();        //从迭代器取出的元素为B时,从list集合中移除该元素。

    System.out.println(str);                              // 打印迭代器取出的元素

}
    
   System.out.println(list.contains("B"));                // 打印list集合还有没有B元素。



⑤ 注意事项:在迭代输出时,不能对集合调用集合对象的remove方法删除数据。


⑤.Map接口


①Map接口与Collection有一定的区别,以 键(key)值(value)对的方式 为保存方式。

Map<K,V> 第一个泛型为键KEY的数据类型,第二个泛型为值VALUE的

②常用子类: 无序存放,key不允许重复

HashMap

HashTable

③常用方法:

put() 存放数据 get() 获取数据(通过键来找到值)

containsKey() 是否存在某键 containsValue() 是否存在某值

keySet() 获取全部的键(返回一个Set接口)  

values() 获取全部的值(返回一个Collection接口)

④ 示例:

Map<String,String> map = new HashMap<String,String>();


     
0 0