• Tags
  •         
  • www.breakyizhan.com
  •    

    集合是一组表示为单个单元的单个对象。Java提供了Collection Framework,它定义了几个类和接口,将一组对象表示为一个单元。

    Collection接口(java.util.Collection)和Map接口(java.util.Map)是Java集合类的两个主要根接口。

    Collection框架

    在引入Collection Framework之前(或在JDK 1.2之前),用于对Java对象(或集合)进行分组的标准方法是array或Vector或Hashtable。所有这三个集合都没有通用接口。
    例如,如果我们想要访问array,vector或Hashtable的元素。所有这三个都有不同的方法和语法来访问成员:

    // Java program to show whey collection framework was needed
    import java.io.*;
    import java.util.*;
     
    class Test
    {
        public static void main (String[] args)
        {
            // Creating instances of array, vector and hashtable
            int arr[] = new int[] {1, 2, 3, 4};
            Vector<Integer> v = new Vector();
            Hashtable<Integer, String> h = new Hashtable();
            v.addElement(1);
            v.addElement(2);
            h.put(1,"geeks");
            h.put(2,"4geeks");
     
            // Array instance creation requires [], while Vector
            // and hastable require ()
            // Vector element insertion requires addElement(), but
            // hashtable element insertion requires put()
     
            // Accessing first element of array, vector and hashtable
            System.out.println(arr[0]);
            System.out.println(v.elementAt(0));
            System.out.println(h.get(1));
     
            // Array elements are accessed using [], vector elements
            // using elementAt() and hashtable elements using get()
        }
    }
    

    输出:

    1
    1
    geek

    我们可以看到,集合(Array,Vector或Hashtable)都没有实现标准的成员访问接口。因此,程序员很难编写可以适用于所有类型集合的算法。
    另一个缺点是,大多数'Vector'方法都是最终的。因此,我们无法扩展'Vector'类来实现类似的集合。
    Java开发人员决定提出一个通用接口来处理上面提到的问题并引入了Collection Framework,他们在JDK 1.2中引入了集合,并改变了传统的Vector和Hashtable以符合集合框架。

    Collection框架的优点:

    1. 一致的API:API具有基本的接口集,如Collection,Set,List或Map。所有那些实现的类(如ArrayList,LinkedList,Vector等),这些接口都有一些通用的方法集。
    2. 减少编程工作:程序员不必担心Collection的设计,而不是他可以专注于他的程序中的最佳使用。
    3. 提高程序速度和质量:通过提供有用的数据结构和算法的高性能实现来提高性能。

    集合框架的层次结构

                 Collection                Map
             /     /    \      \            |
            /      /      \     \           |
         Set    List    Queue  Dequeue   SortedMap
         /
        /
     SortedSet 
                Core Interfaces in Collections
    
    Note that this diagram shows only core interfaces.

    Java中的集合

     
    转载请保留页面地址:https://www.breakyizhan.com/java/5026.html