Java集合框架的接口和类层次关系结构图

本文深入介绍了Java集合框架的核心接口和实现类,包括Collection、Set、List、Map等,并通过示例代码展示了不同集合类型的使用方法及其特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合框架中的核心接口 

接口

说明

实体类

Collection

 

一种基本接口,它定义了一些普通操作,通过这些操作,可以将一个对象集合当作一个独立单元来对其进行存放和处理

 

Set

Set接口扩展了Collection接口,用来提供集合的维护(该集合中的元素以某一排列顺序存储)所需的功能

HashSet

LinkedHashSet

SortedSet

SortedSet接口扩展了Set接口,用来提供集合的维护(该集合中的元素以某一排列顺序存储)所需的功能

TreeSet

List

List接口扩展了Collection接口,用来存放某个元素序列

ArrayList

Vector

LinkedList

Map

一种基本接口,定义了用来实现键/值(key-value)映射关系维护的操作

HashMap

Hashtable

LinkedHashMap

SortedMap

针对以键序排列存放其映射关系的映射,该接口扩展了Map接口

TreeMap

 

集合及映射实现类表

实体集合/映射

接口

重复项

有序/排序

元素调用方法

实现类数据结构

HashSet

Set

元素唯一

无顺序

equals()、hashCode()

Hash表

LinkedHashSet

Set

元素唯一

插入排序

equals()、hashCode()

Hash表和双向链表

TreeSet

SortedSet

元素唯一

排序

equals()、compareTo()

平衡树

ArrayList

List

可以重复

插入排序

equals()

可调大小数组

LinkedList

List

可以重复

插入排序

equals()

链表

Vector

List

可以重复

插入排序

equals()

可调大小数组

HashMap

Map

键唯一

无顺序

equals()、hashCode()

Hash表

LinkedHashMap

Map

键唯一

键插入顺序/条目访问顺序

equals()、hashCode()

Hash表和双向链表

Hashtable

Map

键唯一

无顺序

equals()、hashCode()

Hash表

TreeMap

SortedMap

键唯一

键序排列

equals()、compareTo()

平衡树

ollection和Collections的区别

首先要说的是,"Collection" 和 "Collections"是两个不同的概念;

如下图所示,"Collection"是集合类(Collection)的顶级接口,然而”Collections“是一个提供了一系列静态方法的集合工具类;

Collection的类层次结构图

Map的类层次结构图

总结

代码示例

复制代码
package simplejava;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Q7 {

    public static void main(String[] args) {
        List<String> a1 = new ArrayList<String>();
        a1.add("Program");
        a1.add("Creek");
        a1.add("Java");
        a1.add("Java");
        System.out.println("ArrayList Elements");
        System.out.print("\t" + a1 + "\n");
         
        List<String> l1 = new LinkedList<String>();
        l1.add("Program");
        l1.add("Creek");
        l1.add("Java");
        l1.add("Java");
        System.out.println("LinkedList Elements");
        System.out.print("\t" + l1 + "\n");
         
        Set<String> s1 = new HashSet<String>(); // or new TreeSet() will order the elements;
        s1.add("Program");
        s1.add("Creek");
        s1.add("Java");
        s1.add("Java");
        s1.add("tutorial");
        System.out.println("Set Elements");
        System.out.print("\t" + s1 + "\n");
         
        Map<String, String> m1 = new HashMap<String, String>(); // or new TreeMap() will order based on keys
        m1.put("Windows", "2000");
        m1.put("Windows", "XP");
        m1.put("Language", "Java");
        m1.put("Website", "programcreek.com");
        System.out.println("Map Elements");
        System.out.print("\t" + m1);
    }

}
复制代码

结果打印:

ArrayList Elements
    [Program, Creek, Java, Java]
LinkedList Elements
    [Program, Creek, Java, Java]
Set Elements
    [tutorial, Creek, Program, Java]
Map Elements
    {Windows=XP, Website=programcreek.com, Language=Java}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值