【Java面试题】31 介绍Collection框架的结构

Collection:List列表,Set集

Map:Hashtable,HashMap,TreeMap

 

Collection  是单列集合

List   元素是有序的、可重复

有序的 collection,可以对列表中每个元素的插入位置进行精确地控制。

可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

可存放重复元素,元素存取是有序的。

List接口中常用类

Vector: 线程安全,但速度慢,已被ArrayList替代。

底层数据结构是数组结构

ArrayList:线程不安全,查询速度快。

底层数据结构是数组结构

LinkedList:线程不安全。增删速度快。

底层数据结构是列表结构

Set(集) 元素无序的、不可重复。

取出元素的方法只有迭代器。不可以存放重复元素,元素存取是无序的。

Set接口中常用的类

HashSet:线程不安全,存取速度快。

它是如何保证元素唯一性的呢?依赖的是元素的hashCode方法和euqals方法。

TreeSet:线程不安全,可以对Set集合中的元素进行排序。

它的排序是如何进行的呢?通过compareTo或者compare方法中的来保证元素的唯一性。元素是以二叉树的形式存放的。

Map  是一个双列集合

|--Hashtable:线程安全,速度快。底层是哈希表数据结构。是同步的。

不允许null作为键,null作为值。

|--Properties:用于配置文件的定义和操作,使用频率非常高,同时键和值都是字符串。

是集合中可以和IO技术相结合的对象。(到了IO在学习它的特有和io相关的功能。)

|--HashMap:线程不安全,速度慢。底层也是哈希表数据结构。是不同步的。

允许null作为键,null作为值。替代了Hashtable.

|--LinkedHashMap: 可以保证HashMap集合有序。存入的顺序和取出的顺序一致。

|--TreeMap:可以用来对Map集合中的进行排序.

Collection 和 Collections的区别

Collection是集合类的上级接口,子接口主要有Set 和List、Map。

Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

时间: 2024-10-24 23:10:42

【Java面试题】31 介绍Collection框架的结构的相关文章

介绍Collection框架的结构;Collection 和 Collections的区别

介绍Collection框架的结构:Collection 和 Collections的区别 集合框架: Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection  是单列集合 List   元素是有序的.可重复 有序的 collection,可以对列表中每个元素的插入位置进行精确地控制. 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 可存放重复元素,元素存取是有序的. List接口中常用类 l Vec

简单介绍Collection框架的结构

Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection  是单列集合 List   元素是有序的.可重复 有序的 collection,可以对列表中每个元素的插入位置进行精确地控制. 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 可存放重复元素,元素存取是有序的. List接口中常用类 l Vector: 线程安全,但速度慢,已被ArrayList替代. 底层数据结构是数组结构 l ArrayLis

Java面试题-并发容器和框架

1. 如何让一段程序并发的执行,并最终汇总结果? 答:使用CyclicBarrier 和CountDownLatch都可以,使用CyclicBarrier 在多个关口处将多个线程执行结果汇总,CountDownLatch 在各线程执行完毕后向总线程汇报结果. 2. 如何合理的配置java线程池?如CPU密集型的任务,基本线程池应该配置多大?IO密集型的任务,基本线程池应该配置多大?用有界队列好还是无界队列好?任务非常多的时候,使用什么阻塞队列能获取最好的吞吐量? 答:1)配置线程池时CPU密集型

Java面试题总结之Java基础(三)

1.JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try 块中可以抛出异常吗? 答:Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口.在Java 中,每个异常都是一个对象,它是Throwable 类或其它子类的实例.当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理.Java 的异常处理是通过5 个关键词来实现的:try.ca

Collection框架简略

Collection框架的结构: 一.Collection结构框架图: 二.Set.List.Queue.Map Set:collection的派生接口,不允许重复元素--equal(),取出元素的方法只有迭代器. HashSet:按Hash算法查找.存取性能好:顺序不定:非同步,线程不安全:元素可为null.(hash意义在于快速查找,根据元素的值便可快速查找其储存位置) LinkedHashSet:Hashset 的子类,也是按hashcode决定储存位置,但用链表维护,使得元素顺序与添加顺

Java编程手冊-Collection框架(上)

该文章所讲内容基本涵盖了Collection里面的全部东西,尽管基于jdk 1.5的.可是思路非常清晰 1.引言 1.1 Collection框架的介绍 尽管我们能够使用数组去存储具有同样类型的元素集合(包含基本类型和对象类型),可是数组不支持所谓的动态内存分配,一旦分配之后,它的长度就是固定的,无法改变,另外,数组是一个简单的线性结构.在我们的实际开发中,可能会须要更复杂的数据结构.比如linked list, stack, hash table, sets, 或者 trees. 在Java中

java中Collection框架的讲解

下面要开始java中相关集合框架的学习啦. Are you ready?Let's go~~ 今天要讲解的Java中的Collection框架. 1) 首先查看jdk中Collection类的源码后会发现如下内容: ... * @see AbstractCollection * @since 1.2 */ public interface Collection<E> extends Iterable<E> { // Query Operations 通过查看可以发现Collecti

Java编程手册-Collection框架(下)

5.  Set<E>接口与实现 Set<E>接口表示一个数学的集合,它不允许元素的重复,只能包含一个null元素. Set<E>接口声明了下面抽象方法. boolean add(E o) // add the specified element if it is not already present boolean remove(Object o) // remove the specified element if it is present boolean con

Java大型互联网架构-分布式系统服务框架Zookeeper介绍与原理实现

分布式系统服务框架Zookeeper介绍与原理实现 Zookeeper基本概念 zk角色 Zookeeper中的角色主要有以下三类,如下表所示: zookeeper角色 zk service网络结构 Zookeeper的工作集群可以简单分成两类,一个是Leader,唯一一个,其余的都是follower,如何确定Leader是通过内部选举确定的. zookeeper服务 Leader和各个follower是互相通信的,对于zk系统的数据都是保存在内存里面的,同样也会备份一份在磁盘上. 对于每个zk