今天第一次去参加公司的招聘会,在面试中问到了有集合的特点,但是当时只答出来了一部分,不过还好,面试官对我的答案还挺满意的,顺利的通过了面试!得到了来之不易的实习机会!
面试回学校后,通过翻阅书籍和查询网络资源,对集合类的特点做了,如下总结!
集合类的祖先接口分别是collection和map; 而collection中,已知所实现的类分别有:AbstractCollection, AbstractList,
AbstractQueue, AbstractSequentialList,
AbstractSet, ArrayBlockingQueue,
ArrayDeque,
ArrayList, AttributeList, BeanContextServicesSupport,
BeanContextSupport,
ConcurrentLinkedQueue,
ConcurrentSkipListSet,
CopyOnWriteArrayList,
CopyOnWriteArraySet,
DelayQueue, EnumSet, HashSet, JobStateReasons,
LinkedBlockingDeque,
LinkedBlockingQueue,
LinkedHashSet, LinkedList, PriorityBlockingQueue,
PriorityQueue, RoleList, RoleUnresolvedList,
Stack, SynchronousQueue, TreeSet, Vector.
而collection接口中有两个常用的子接口分别是list<E>和set<E>.在list<E>接口下又有如下实现的集合类:AbstractList, AbstractSequentialList,
ArrayList, AttributeList, CopyOnWriteArrayList,
LinkedList,
RoleList, RoleUnresolvedList,
Stack, Vector,像常用的ArrayList和LinkedList Vector都包含在其中.而set<E>接口下又实现了如下类:AbstractSet, ConcurrentSkipListSet,
CopyOnWriteArraySet,
EnumSet, HashSet, JobStateReasons,
LinkedHashSet, TreeSet,像常用的HashSet和TreeSet;而这两个不同接口下所实现的类,不同点主要是list下的集合类,可以顾念重复元素,元素是有序的(存取顺序一致),可以通过List脚标来获取指定元素;而Set不可以有重复元素,元素是无序的。List接口中,比较常用的类有三个:ArrayList、Vactor、LinkedList。
ArrayList :线程不安全的,对元素的查询速度快。
Vector :线程安全的,多了一种取出元素的方式:枚举(Enumeration),但已被ArrayList取代。
LinkedList :链表结构,对元素的增删速度很快。
Set接口中,比较常用的类有两个:HashSet、TreeSet:
HashSet:要保证元素唯一性,需要覆盖掉Object中的equals和hashCode方法(因为底层是通过这两个方法来判断两个元素是否是同一个)。
TreeSet:以二叉树的结构对元素进行存储,可以对元素进行排序。
排序的两种方式:
1、元素自身具备比较功能,元素实现Comparable接口,覆盖compareTo方法。
2、建立一个比较器对象,该对象实现Comparator接口,覆盖compare方法,并将该对象作为参数传给TreeSet的构造函数(可以用匿名内部类)。
Map接口其特点是:元素是成对出现的,以键和值的形式体现出来,键要保证唯一性:常用类有:HashMap,Hashtable ,TreeMap。
HashMap:线程不安全等的,允许存放null键null值。
Hashtable:线程安全的,不允许存放null键null值。
TreeMap:可以对键进行排序(要实现排序方法同TreeSet)。
Collection和Map两个接口对元素操作的区别:
存入元素:
Collection接口下的实现类通过add方法来完成,而Map下是通过put方法来完成。
取出元素:
Collection接口下:List接口有两种方式:1、get(脚标);2、通过Iterator迭代方式获取元素;而Vactor多了一种枚举(Enumeration)的方式。Set接口通过迭代的方式获取元素。
Map接口下:先通地keySet获取键的系列,然后通过该系列使用Iterator迭代方式获取元素值。
分享到:
相关推荐
Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。...了解集合类的特点和用法可以帮助我们更好地编写代码。
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
### Java集合类学习笔记知识点详解 #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,容器是用于存储和管理对象集合的重要工具。当我们处理大量的对象时,比如存储多个员工的信息,仅仅依赖于基本的...
本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...
### Java集合类性能分析 #### 一、Java集合框架概览 Java集合框架是一个非常重要的概念,它提供了处理数据集合的标准方法。集合框架的核心部分主要包括集合接口、抽象类以及具体的实现类。 - **集合接口**:Java...
关于Java的集合类面试问题和并发包的几个集合类比较,面试的同学可以看看
### Java集合类与容器类详解 #### 一、引言 在Java编程中,集合类是一种非常重要的数据结构,用于存储一系列对象。相比于数组,集合类提供了更多的灵活性和功能,尤其是在处理未知数量的对象时更为方便。Java标准...
### Java集合类详解 #### 一、概述 Java集合框架是Java编程语言中处理数据结构的一个重要组成部分。它提供了一套标准的接口和实现来帮助开发者高效地存储、检索和操作对象。Java集合主要包括两大类型:`Collection...
总之,Java集合类提供了丰富的选择来满足不同场景下的数据存储需求,从无序不重复的Set到有序可重复的List,再到键值对的Map,都有对应的接口和实现类。理解并熟练掌握这些接口和实现类的特性和使用方法,是提高Java...
java 基础中的集合分类 list 、set、map, 及其各自所有的特点, 使用xmind 列举出来。
Java集合类API是Java编程语言中的核心组件,提供了多种数据结构,如列表(List)、队列(Queue)、集(Set)和映射(Map),用于存储和操作对象。Java 7包含了58种不同的集合实现,每种都有其特定的用途和性能特征,因此选择...
### Java包装类与集合类详解 #### 包装类概述 在Java中,为了更好地处理基本数据类型(如`int`、`double`等),Java提供了八种包装类,每种包装类都将基本数据类型“封装”起来,使得基本类型也能拥有对象特性,并...
本文将深入探讨Java集合类的汇总,包括List、Set和Map这三大核心接口及其实现类。 首先,让我们从List接口开始。List是一种有序的集合,允许有重复元素,并且支持通过索引来访问元素。ArrayList和LinkedList是List...
Java集合类是Java编程语言中处理对象集合的重要工具,它为开发者提供了丰富的数据结构和算法支持。这份讲解文件主要涵盖了Java集合框架的核心概念,包括接口和实现类。 首先,集合框架是一个类库的集合,其核心是...
以下是关于Java集合类,特别是HashMap、CurrentHashMap、ArrayList和LinkedList的详细知识点: 1. **HashMap**: HashMap是Java中最基本的键值对存储结构,基于哈希表实现。它提供了快速的插入、删除和查找操作,...
在这个“java集合类.rar”压缩包中,可能包含了关于Java集合框架的各种资料,包括ArrayList、LinkedList、HashMap、HashSet等核心容器的详细讲解。 ArrayList是基于动态数组实现的集合,提供了按索引访问元素的能力...
Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...
### Java集合类总结 #### 一、概述 Java集合类框架是Java标准库的一个重要组成部分,主要用于存储和处理数据集合。这些集合类被定义在`java.util`包中,为开发者提供了灵活的数据结构来实现各种应用程序的需求。...