JAVA ---- java中集合主要两大分支 Collection 和 Map

我先学习 Map 集合类,然后再学习 Collection 类;

1、HashMap 和 Hashtable 这两兄弟经常被放到一起来比较,那么它们有什么不一样呢?

a. HashMap 不是线程安全的;HashTable 是线程安全的,其线程安全是通过Sychronize实现。

b. 由于上述原因,HashMap 效率高于 HashTable。

c.HashMap 的键和值可以为null,HashTable 不允许键或者值为null。多线程环境下,通常也不是用 HashTable,因为效率低。HashMap 配合 Collections 工具类使用实现线程安全。同时还有 ConcurrentHashMap 可以选择,该类的线程安全是通过 Lock 的方式实现的,所以效率高于Hashtable。hashTable是同步的。而HashMap不是,因此 HashMap 更适合单线程环境,而 HashTable适合于多线程环境。

原文地址:https://www.cnblogs.com/H-hy/p/11206717.html

时间: 2024-10-29 08:42:48

JAVA ---- java中集合主要两大分支 Collection 和 Map的相关文章

java容器的两大类Collection和Map

java容器包括Collection和Map两种,Collection储存着对象的集合,而Map储存着键值对(两个对象)的映射表. Collection: 1)Set ·TreeSet ·HashSet ·LinkedHashSet 2)List ·ArrayList(基于动态数组实现,线程不安全) ·Vector (线程安全的,同步的,开销必ArrayList大,访问速度更忙.Vector 每次扩容请求其大小的 2 倍空间,而 ArrayList 是 1.5 倍) ·LinkedList(基于

首先java中集合类主要有两大分支

本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 首先java中集合类主要有两大分支: (1)Collection (2)Map 先看它们的类图: (1)Collection Collection (2)Map Map 可以看到它们之间的关系纷繁复杂,如果不系统的学习一下,还真

初识Java集合框架(Iterator、Collection、Map)

1. Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 注意: 既有接口也有类,图中画实线的是类,画虚线的是接口 使用之前须要到导入java.util包 List和Set是Collection的子接口,ArrayList和LinkedList是List的两个实现类,HashSet和TreeSet是Set的两个实现类 重点:ArrayList.LinkedList和HashSet Map接口对应的集合是以K-V键值对的方式存储数据的,不同于Collection

Java学习关于集合框架的基础接口--Collection接口

 集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准化了程序处理对象组的方式. 集合框架在设计上需要满足几个目标.首先,框架必须是高性能的.基本集合(动态数组.链表.树以及哈希表)的实现是高效率的.很少需要手动编写这些数据引擎中的某一个.其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性.再次,扩展或改造必须易于实现.为了满

java中集合的使用-set,list,map

感觉最近总结了不少东西,而且每次总结的速度都比之前快了不少,原因主要是因为这两个月一直在做项目,每天为几行代码整的晕头转向的,可不是真的晕头转向哦,而是解决各种疑难杂症,所以笔记里留下了好多东西,不像之前看视频学习都是在做学习笔记,很少实践性的东西,这次可真是证明了:实践出真知呀. 记得第一次听说集合是好久之前了,至于有多么之前就不太记得,只是记得在我听说集合这个名词的时候只用过list,至于set和map都是第一次听说,而这次ITOO的项目可让我长见识了,着三个集合都用到了,也从实践中了解到了

java学习总结-集合(collection)

本人正在学习java基础知识,非常感恩能够看到毕向东老师的java视频,他引领了我去思考问题,而不是生硬的去记一些知识点,下面是我对集合学习的总结和思考. 01-常用对象API(集合框架-概述).avi 问题1:什么是集合框架? 首先要理解集合这个词,它有另一个更加形象的名词:容器,所谓容器就是装载事物的器皿,而在java中最大的特征就是面向对象,所以可以推断出其实它就是用来装载对象的,便于我们去遍历和处理这些对象,关于框架的含义,其实就是它不是一个单独对象,而是有很多对象,并且相互存在区别和关

JAVA基础之集合框架

集合框架(collections framework) 首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能).Java中的集合框架定义了一套规范,用来表示.操作集合,使具体操作与实现细节解耦. 其实说白了,可以把一个集合看成一个微型数据库,操作不外乎"增删改查"四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了. 设计理念 主要理念用一句话概括就是:提供一套"小而美"的API.API需要对

JAVA双列集合HashMap

HashMap 双列集合HashMap是属于java集合框架3大类接口的Map类,   Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key不要求有序,不允许重复.value同样不要求有序,但允许重复. Iterator接口是负责定义访问和遍历元素的接口 1. 使用Iterator迭代器缺点: 1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能 2. ListIterator和Iterator都有hasNex

Java多线程中的竞争条件、锁以及同步的概念

竞争条件 1.竞争条件: 在java多线程中,当两个或以上的线程对同一个数据进行操作的时候,可能会产生"竞争条件"的现象.这种现象产生的根本原因是因为多个线程在对同一个数据进行操作,此时对该数据的操作是非"原子化"的,可能前一个线程对数据的操作还没有结束,后一个线程又开始对同样的数据开始进行操作,这就可能会造成数据结果的变化未知. package com.huojg.test; public class TestThread { public static void