集合框架及泛型类

一、集合框架

    用途:存储数据。

    包:java.util

    接口:Collection、Map、List、Set、Iterator

    类:ArrayList、LinkedList、HashSet、HashMap

    辅助类(算法类):Collections

    注意:List和Set均继承自接口Collection

          ArrayList和LinkedList都实现了接口List

          HashSet实现了接口Set

          HashMap实现了接口Map

          Iterator = Collection.iterator()

二、集合的使用特点

    List:存储不唯一,有序(存储的顺序和插入顺序)的对象

    Set:存储唯一,无序的对象    

    Map:存储一组键值对对象,提供key到value的映射

三、List接口

    ArrayList:

       适用场景:从ArrayList中查找元素速度很快,性能高。不适合对集合元素频繁进行插入、修改、移出操作的场景。

       特点:长度可变,在内存中分配连续的空间。       

       add(Object object):向集合中添加元素

       size():获取集合中元素的个数

       get(int index):获取集合中指定位置的元素(index指代元素的索引下标)。

       remove(int index) remove(Object obj):移除元素

       clear():清空所有元素

       isEmpty():判断集合是否为空

    LinkedList:

        适用场景:对LinkedList进行频繁插入、修改、移出操作时速度快,性能高。查找元素时不如ArrayList性能高。

        特点:实现了链表方法来存取数据。

        LinkedList包含add、get、remove、clear、isEmpty、size等方法,

        还提供了addFirst()、addLast()、removeFirst()、removeLast()、getFirst()、getLast()等方法。

四、Set接口

    HashSet:

        特点:存储一组唯一(不相等)、无序的对象。

        注意:

             HashSet如何判断2个对象是否相等?如果2个对象的toString()方法和hashCode()方法的返回值都相等,则两个对象相等。

             HashSet没有get方法,用来获取元素。原因是添加进去的元素是没有顺序的(添加的顺序和存储的顺序不一致)。

        如何遍历循环HashSet

             通过Iterator接口实现对HashSet的遍历

             1.hasNext():用于判断集合中是否还存在下一个元素。

             2.next():获取集合中的下一个元素。

             HashSet set = new HashSet();

     set.add(1);

     set.add("zhangsan");

     set.add("河北省");

     //循环遍历

     Iterator list = set.iterator();

     while(list.hasNext()){

Object obj = list.next();

System.out.println(obj.toString() + obj.hashCode());

     }

             

五、Map接口

    HashMap:

特点:以键值对的方式存储数据。

        注意:键key不能重复。

六、泛型类

    数据类型参数化。

    上述集合类和接口,都提供了对应的泛型类和接口

    Collection -> Collection<E>   List -> List<E>   Set -> Set<E>   Map -> Map<K, V>   Iterator -> Iterator<E>

    ArrayList -> ArrayList<E>   LinkedList -> LinkedList<E>   HashSet -> HashSet<E>   HashMap -> HashMap<K, V>

    优点:不用频繁进行数据类型转换(向上转型、向下转型)

          

七、Collections算法类

    提供了一组方法,用于对集合实现某些功能。

    max():求集合中最大的元素

    min():求集合中最小的元素

    sort():对集合中的元素进行排序。

    注意:使用上述方法,要求让集合元素的数据类型实现Comparable<E>接口

原文地址:https://www.cnblogs.com/liuxinsir/p/6437178.html