java容器简要概述

java中集合框架的概述

java集合类主要用于保存对象的。

常用的集合对象:

Colletion接口,Collection接口是集合中的顶层容器,表示的是一组对象,它的下面有两个子接口List接口和Set接口。

List接口:元素有序,可以重复。

ArrayList:底层以数组进行存储元素,存储在ArrayList中的元素是有序的,当容量不足时可以自动扩容。

LinkedList:底层以链表进行存储元素,插入和删除效率高。   

Set接口:元素无序,不可以重复。

         HashSet:底层是基于散列表实现的,底层的方法基本调用的HashMap中的方法,。

TreeSet:方法基本调用了TreeMap中的方法。

Map接口,以键值对的方式存储对象,不能存在重复的键,每个键也最多只能映射到一个值。

HashMap:底层是基于散列表实现的,jdk1.6使用数组和链表来存储元素,jdk1.8做了优化使用了数组,链表和红黑树来实现,当链表长度超过阈值                                         是,就会将链表转换成红黑树,从而减少查找时间。

Hashtable:现在基本不使用Hashtable了,在多线程环境下它的效率没有ConcurrentHashMap的效率高

TreeMap:底层基于红黑树实现的,能够自动对添加的对象进行排序,这个对象要实现Comparable接口。

          ConcurrentHashMap:jdk1.5引入的并发包中的类。采用多个分段锁,把Map分成多个Segment。

注意:Collections并不是集合,它是一个操作集合的工具类。与Arrays工具类类似。提供了许多操作集合的方法。

ArrayList

对于不需要频繁的查找和删除的操作,可以考虑选用ArrayList来进行存储。ArrayList不是线程同步的,不适于多线程环境下。如果在多线程环境下可以使用

Collections.synchronizedList(new ArrayList()),来将该列表包装起来。

LinkedList

适用于查找和删除操作频繁的情况,不适应需要频繁查找的情况。不是线程同步的。

ArrayList和LinkedList的区别?

1.ArrayList是基于数组来实现的,LinkedList是基于链表来实现的。

2.ArrrayList适合用于频繁的查找操作,LinkedList则适用于频繁的插入和删除操作。(多数据情况下,对于单条数据插入和删除ArrayList效率优于LinkedList)

HashSet和TreeSet

TreeSet在进行添加对象时,该对象应该实现内部比较器Comparable接口,否则抛出异常。

HashMap和Hashtable的区别与联系

1.Hashtable是线程同步的,Hashtable中的大部分方法都加了synchronized进行同步,HashMap是非线程同步的,不适合用在多线程环境下。

2.HashMap和Hashtable底层都是基于散列表来实现的。

3.Hashtable 是允许空的键值对的,Hashtable则不允许。

4.Hashtable还继承了Dictionary接口.

5.现在基本上不在使用Hashtable,在多线程环境下可以使用ConcurrentHashMap。

时间: 2024-10-17 18:33:31

java容器简要概述的相关文章

Java容器简要教程

java中,经常会在运行中创建任意类型的任意数量的对象 保存多个对象最常用的方法是使用数组 比如一个类叫Apple他有多个对象apple0,apple1,......,apple98,apple99有100个. 那么我们可以创建一个Apple类型的数组Apple[] appleArray=new Apple[100]; 然后将100个苹果一个一个放进去. But...这会有一个问题.突然苹果的数量增加了一个,现在是101个Apple了.那么之前在堆中分配的appleArray似乎不够用了,解决方

java 容器Collection List Set Map概述

对JAVA的集合的理解是想对于数组 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型. JAVA集合主要分为三种类型: Set(集) List(列表) Map(映射) Collection 接口 Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和List)的通用方法. Set 和

java之集合概述

集合也称容器:从大的类别分成两类:Collection和Map,也即:单列和双列列表. java编程思想中一张图说明该体系的整体结构:其中黑色着重的类是经常使用的类. 1 Collection Collection:作为单列集合的根接口.该类集合的继承体系如下: Collection分为两大类:List和Set 1)List: 特点:有序的 collection(也称为序列):列表通常允许重复的元素.       List 接口提供了特殊的迭代器,称为 ListIterator,除了允许 Ite

java 容器 arraylist 使用方法

1. ArrayList概述: ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能. ArrayList 实现了RandmoAccess接口,即提供了随机访问功能.Rand

Java 容器 & 泛型:一、认识容器

Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 容器是Java语言学习中重要的一部分.泥瓦匠我的感觉是刚开始挺难学的,但等你熟悉它,接触多了,也就"顺理成章"地知道了.Java的容器类主要由两个接口派生而出:Collection和Map. 一.Collection vs Collections 首先,Collection 和 Collections 是两个不同的概念.之所以放在一起,是为了更好的比较.Collection是容器层次结构中

Java 容器

在实际问题中我们经常需要处理数据,单纯依靠数组来存储数据对开发来说非常困难,java提供了一套容器来方便我们编程.对java容器有一个整体的了解对我们来说非常重要,这样在需要特定容器时,不会手忙脚乱,本文主要介绍java的一些基本容器,而不要仅知道使用ArrayList.下面的图片是java中的简单容器分类   --图片来自网络 java定义了四种容器类型,List.Set.Queue和Map. 其中List.Set.Queue都实现了Collection接口,下面来看看这4中类型的容器. Co

java容器---集合总结

思考为什么要引入容器这个概念? Java有多种方式保存对象(应该是对象的引用),例如使用数组时保存一组对象中的最有效的方式,如果你想保存一组基本类型的数据,也推荐使用这种方式,但大家知道数组是具有固定尺寸的,你必须事先知道你要需要多少个对象.但是在一般的情况中,你在写程序中并不知道将需要多少个对象,或者是否需要更加复杂的方式来存储对象,因此数组尺寸固定很不爽! 为了解决上述问题,引入了容器的概念.容器提供了完善的方法来保存对象,你可以使用这些工具来解决数量惊人的问题.Java容器类可以自动调整自

Java 容器在实际web项目中应用

前言:在java开发中我们离不开集合数组等,在java中有个专有名词:"容器" ,下面会结合Thinking in Java的知识和实际开发中业务场景讲述一下容器在Web项目中的用法.可结合图片代码了解Java中的容器 备注 :这个地方 ,参考于朝向远方的博客Java容器详解,既然前人总结的这么好,我就直接拿来用,在这里更注重在实际开发中的例子,感谢那些总结的前辈们,辛苦了. 简单的数组例子 Thinking in Java 中并没有把数组归为Java的容器,实际上数组的确不是Java

字符集的简要概述

oracle031 字符集的简要概述 字符集:就是一张字符和编码的对应表. 1.字符集的作用和含义 字符编码 使用场合 数据库字符集 (1)用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据 (2)用来标示诸如表名.列名以及PL/SQL变量等 (3)用来存储SQL和PL/SQL程序单元等 国家字符集 (1)用以存储NCHAR, NVARCHAR2, NCLOB等类型数据 2.客户端OS字符集.NLS_LANG设置.服务器端OS字符集.Oracle数据库字符集 字符集之间的关系