`

java的类集详解

阅读更多

      在学习类集之前,先明确一个概念,那就是啥叫重量级,啥叫轻量级。在学习框架或容器时,常常会有人说这个容器是重量级的,这个容器是轻量级的,现在就对重量级和轻量级做一个解释。

      重量级还是轻量级主要看它应用了多少服务。使用服务越多,对系统资源的占用也越多,负载越大,必然会影响到应用发布时间和运行性能。对于一个容器而言,它提供了很多的服务,但默认对应用不是打开的,应用需要某种服务,必须指明使用该服务,则应用只涉及该容器的核心服务,则把这种非入侵式的容器称为轻量级容器。相反,应用在用该容器时,你必须使用该容器给你提供的所有功能,这种入侵式的容器称为重量级容器。

    1、 类集合的总体结构图

 

        从总体图上我们可以看到,Collection包括List,set两个子接口。而List的子接口的实现有ArrayList、LinkedList和Vector。Set子接口的实现为hashset,它的子接口还包括SortedSet。

Map接口包括HashMap和HashTable两个实现和sortedMap一个子接口,SortedMap子接口的实现为TreeMap。

        下面就几个接口或实现的区别做详细的解释,而此区别也是学习集合的重点:

(1)list、set和Map的区别

        1、list中存储的元素对象是有序的,且允许重复。

        2、Set中存储的元素对象是无序的散列的且不允许重复,后一个相同元素会覆盖前一个相同元素的对象。

        3、Map是一个由key和value组成的键值对。

(2)ArrayList和LinkedList,ArrayList和Vector的区别

         ArrayList和LinkedList区别

        Linkedlist的底层实现是双向循环列表,所以对于增加删除操作具有很高的效力。适合用来实现Stack和Queue数据结构。

        ArrayList底层实现为数组,所以对于查找遍历具有很高的效力,在实际开发中应用较多。

        Arraylist和Vector区别和联系

        相同点:底层实现都是数组,可以通过下标访问。

        不同点:Vector是线性安全的,属于重量级容器。

                    ArrayList不是线性安全的,属于轻量级容器。

(3)HashMap和HashTable的区别

        HashMap是非线性安全的,轻量级容器,它允许空的键值对,它还可以存储null的键值对。

        HashTable是线性安全的,重量级容器,它不允许空的键值对,它不能存储null的键值对。

       解释:在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。而hashTable不可以。

 Map map =new HashMap();
  map.put(null, "nihao ");     //允许
  map.put("key", null);         //允许
  map.put("null", "nnnnnn");//允许
  System.out.println(map.get(null));
  System.out.println(map.get("key"));
  System.out.println(map.get("null"));


  Map table =new Hashtable();
  table.put("null", "table");//允许
  table.put("key", null); //不允许
  table.put(null, "table");//不允许
  System.out.println(table.get("null"));
  System.out.println(table.get("key"));

  (4)Hashset和HashMap

        Hashset是一个特殊的HsahMap,它是通过组合HashMap实现的,它把所有存放的对象作为KEY,而Value为null。所以set是特殊的Map。

(5)sortedset是有序的set,它的实现是treeset,而sortedMap是有序的Map,它的实现是treeMap。TreeSet是通过TreeMap实现的一个SortedSet的实现。TreeMap是通过红黑二叉树实现的。

      注意:集合在循环获取值时,都会遇到iterator,循环时建议优先考虑iterator

 

 

 

  • 大小: 34.3 KB
分享到:
评论
1 楼 Javakeith 2010-11-01  
概念很清晰!

相关推荐

    Java 类集(很全)

    ### Java 类集详解 #### 一、概述 Java 类集是Java编程语言中处理和管理对象集合的一个重要组成部分。它提供了灵活多样的容器用于存储、检索、操纵对象,并且能够根据不同的需求选择合适的集合类型。类集的核心...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    Java2编程详解

    《Java2编程详解》是一本全面深入探讨Java编程技术的书籍,主要针对Java 2平台进行讲解。在Java 2平台上,Java语言的功能得到了极大的扩展,包括多线程、网络编程、I/O流、数据库连接、图形用户界面(GUI)以及Java...

    java设计模式详解合集

    Java设计模式详解合集是一份宝贵的资源,包含了丰富的面向对象设计原则和多种设计模式的深入讲解。这份资料旨在帮助开发者提升软件设计能力,遵循良好的编程实践,提高代码的可读性、可维护性和复用性。以下是其中...

    Java开发详解.zip

    031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf ...

    Java集合详解,详细讲解java的集合类

    Java集合框架是Java编程语言中的核心部分,它提供了一种高效、灵活的方式来组织和操作对象的集合。在Java中,集合主要分为两大类:...无论是处理简单的数据集还是复杂的对象关系,Java集合都能提供强大而灵活的支持。

    Java数据库技术详解

    首先,Java入门电子书中可能涵盖了基础的Java编程概念,如变量、数据类型、控制结构、类与对象、异常处理等。这些基础知识对于理解和应用Java数据库技术至关重要。在掌握这些基本概念后,开发者可以进一步学习如何...

    java字符集编码乱码详解

    ### Java字符集编码乱码详解 #### 一、编码与乱码基础知识 在计算机科学领域,字符集(Character Set)是指一系列符号和电子通信代码的标准集合。每种字符集都有其特定的应用场景和优势。例如,ASCII(American ...

    最新Java 编程详解

    14. **JDBC**:Java数据库连接,用于与各种数据库进行交互,包括连接、执行SQL语句、处理结果集等。 15. **Spring框架**:当前最流行的Java开发框架之一,用于构建企业级应用,包括依赖注入、AOP(面向切面编程)、...

    Java应用开发详解视频教程(22集)

    资源名称:Java应用开发详解视频教程(22集)资源目录:【】第00章:JAVA课堂序章【】第01章:JAVA概述及开发环境搭建【】第02章:简单Java程序【】第03章:Java基础程序设计【】第04章:数组与方法【】第05章:面向...

    Java数据库技术详解PPT

    本PPT详细介绍了如何使用Java进行数据库操作,包括连接数据库、执行SQL语句、处理结果集以及事务管理。 首先,JDBC是Java平台的标准接口,它允许Java程序与各种类型的数据库进行通信。要使用JDBC,我们需要导入相关...

    Java正则表达式详解.pdf

    ### Java正则表达式详解:掌握文本匹配的艺术 正则表达式,又称正则规则或正则模式,是一种用于描述字符串结构的语法,被广泛应用于各种编程语言中,包括Java,用于文本处理、数据验证、搜索与替换等场景。本文将...

    java倒类详解 讲解java Dao类的里各种语句与变量之间的关系

    在Java编程语言中,DAO(Data Access Object)类是一个重要的设计模式,主要用于处理数据库操作。这个模式将数据访问逻辑封装起来,使得业务层代码与数据存储细节相分离,提高了代码的可重用性和可测试性。本文将...

    Java集合排序及java集合类详解

    Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以保持插入时的顺序;而Set则不允许元素重复,它强调的是元素的唯一性。 1. List接口:List接口中最常见的实现类有...

    Java2 类库详解

    Java2 类库详解 在Java编程领域,Java2 类库,也称为Java 2 Platform (J2SE),是Java开发的基础。它包含了丰富的API(应用程序接口),为开发者提供了构建复杂应用所需的各种工具和服务。Java2类库是Java的核心组成...

    java数据库连接详解

    ### Java数据库连接(JDBC)详解 #### 一、引言 在现代软件开发中,数据库是存储和管理数据的关键组件之一。Java作为一种广泛使用的编程语言,提供了强大的工具和API来处理与数据库的交互,其中最重要的一项技术就是...

    Java案例详解1精通Java项目开发

    在本Java案例详解1精通Java项目开发中,我们将深入探讨如何使用Java技术构建高效、稳定的企业信息系统。这个案例主要基于Java编程语言,并结合SQL2000数据库管理系统,利用MyEclipse开发工具来实现。以下将详细介绍...

    Java类集final

    ### Java 类集与泛型详解 #### 一、引言 在Java开发中,类集(Class Collections)是处理集合数据的重要工具。本篇将基于提供的文档内容,深入探讨Java中的类集及其核心特性之一——泛型。我们将从概念出发,逐步...

Global site tag (gtag.js) - Google Analytics