集合是一组表示为单个单元的单个对象。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
扫描二维码添加微信 
  • ,每次淘宝领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘50元优惠券!添加微信后回复机械键盘即可领取!
    支持我们,就用微信淘宝!