初始集合框架 List Map Set

java集合框架
集合框架就是简称JCF(java Collections Framework)
集合的特点:元素类型可以不同,集合长度不变,空间不固定

Collection接口和Iterator接口

在集合框架中,分为两种API:
一是装载数据的集合类。
二是操作集合的工具类。

集合接口位于Set接口和List接口的最顶层,是Set接口和List接口的父接口。定义了Collection对象共有的一些基本方法,这些方法分为基本操作、批量操作和数组操作。

Iterator接口是一种用于遍历集合的接口。所谓遍历,是指从集合中取出每一个元素的过程。

List接口:一列数据,数据内容可以重复,以元素安插的次序来放置元素,不会重新排列。
Set 接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素。
Map接口:一列数据对,使用自己内部的一个排列机制放置元素。

List接口实现类的选择
ArrayList:使用最广泛,集合元素增加或删除操作不频繁时使用。最适合查询。
LinkedList:当需要在集合的中间位置,频繁增加或删除元素时使用。
Vector:与ArrayList类似,但Vector是线程安全的,所以性能要低于ArrayList。

效率排序:LinkedLis > ArrayList >Vector

泛型和for each 循环
泛型:由于集合中保存的匀速都是Object类型,当一个元素从集合中取出来后都是Object类型的对象,所以我们必须对其进行强制类型转换。为了解决这种麻烦,JDK1.5中提供了一种新的处理方式泛型。
如:List<String>list=new ArrayList<String>();
for each 循环大大简化了对于集合的遍历操作。

Map接口不是collection接口的继承,Map接口用于维护键/值对。每个条目包括单独的两部分。
一是key键 是不能重复的
二是Value值 是可以重复的
他们是一对一的关系,通过指定的键可以找到唯一对应的值

在Map中不允许出现重复的键。
key和value可以是任何类的实例。

List接口  ---Collection他两继承与他     ---- Set接口                                   Map接口

可以重复                                          不能重复元素                           键不能重复值可以重复

有顺序                                               顺序不定                                键有值没有但是不定
通过索引访问                                    不能索引访问                              通过唯一的键访问值

主要方法:
ArrayList()方法 HashSet类 equals()方法 HashMap类
LinkedLIst()方法 TreeSet类 TreeMap类
Vector()方法 HashTable

map方法
Object put(Object key, Object value): 向集合中加入元素
Object remove(Object key): 删除与KEY相关的元素
void putAll(Map t): 将来自特定映像的所有元素添加给该映像
void clear():从映像中删除所有映射

1、Collection没有get()方法来取得某个元素。只能通过iterator()遍历元素。
2、Set和Collection拥有一模一样的接口。
3、List,可以通过get()方法来一次取出一个元素。使用数字来选择一堆对象中的一个,get(0)...。(add/get)
4、一般使用ArrayList。用LinkedList构造堆栈stack、队列queue。
5、Map用 put(k,v) / get(k),还可以使用containsKey()/containsValue()来检查其中是否含有某个key/value。
HashMap会利用对象的hashCode来快速找到key。
6、Map中元素,可以将key序列、value序列单独抽取出来。
使用keySet()抽取key序列,将map中的所有keys生成一个Set。
使用values()抽取value序列,将map中的所有values生成一个Collection。
为什么一个生成Set,一个生成Collection?那是因为,key总是独一无二的,value允许重复。

时间: 2024-08-05 00:40:31

初始集合框架 List Map Set的相关文章

双列集合框架:Map(个人理解)

双列集合框架:Map1.常用实现类结构|----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x)* |----HashMap:作为Map的主要实现类:线程不安全的,效率高:存储null的key和value* |----LinkedHashMap:保证在遍历map元素时,可以照添加的顺序实现遍历.* 原因:在原的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素.* 对于频繁的遍历操作,此类执行效率高于HashMap.* |----Tre

集合框架系列 Map(十一):LinkeHashMap

目录 1 概述 2 原理 3 源码分析 3.0 Entry 的继承体系 3.1 链表的建立过程 3.2 链表节点的删除过程 3.3 访问顺序的维护过程 3.4 基于 LinkedHashMap 实现缓存 4 总结 1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题.除此之外,LinkedHashMap 对访问顺序也提供了相关支持.在一些场景下,该特性很有用,比如缓存.在

黑马程序员-集合框架(Map和Collections)

--Java培训.Android培训.iOS培训..Net培训.期待与您交流!--- 一.概述 Map是一种存储键值对的存储容器,而且保证键的唯一性.提供一种以"键"标识"值"的数据存储方式.接口形式为:Map<K,V>,其中K是此映射所维护的键的类型,V是映射值的类型.其有两个常用子类,HashMap和TreeMap,另有HashTable与HashMap功能类似,是早期版本.三者特点与不同如下: HashMap:JDK1.2版本出现,底层使用哈希表数

Java集合框架中Map接口的使用

在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不是线性的存放对象的引用,Map接口提供了一种映射关系,所有的元素都是以键值对(Entry类型对象实例)的方式存储的,所以能够根据key快速查找value,key是映射关系的索引,value是key所指向的对象,注意,这里的value不是一个数值,而是一个对象的引用,Java集合框架的元素均是指对象!

集合框架之Map接口

Map是将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. Map 接口提供三种collection视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序定义为迭代器在映射的 collection 视图上返回其元素的顺序.某些映射实现可明确保证其顺序,如 TreeMap 类:另一些映射实现则不保证顺序,如 HashMap 类. 所有通用的映射实现类应该提供两个"标准的"构造方法:一个 void(无参数)构造方法,用于创建空映射:一个是带有单个

【JAVA集合框架之Map】

一.概述.1.Map是一种接口,在JAVA集合框架中是一个非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map集合中存放的是一个一个的键值对,集合中存放的元素必须保证键的唯一性.二.常用方法.1.添加  V put(K key, V value)           将指定的值与此映射中的指定键关联(可选操作). 该方法的作用就是向集合中添加一个键值对,并返回一个值:如果键存在,则返回对应的旧值,并以新值取代

集合框架以及Map(一)

集合又称容器,编程思想中对其的定义为持有对象 我们在使用集合或者数组时得到最多的异常就是数组下表越界异常 Java.lang.ArrayIndexOutOfBoundsException这篇文章我们不讨论异常 java的容器分为2部分 严格来说 Map接口下的子类并不属于集合框架 属于一个独立的体系 图片来源于https://blog.csdn.net/biexiaofei/article/details/77031003 看完这两张图片是不是感觉很复杂,没关系 知识是一点点积累的,今天我们从C

Java 集合框架之 Map

Hashtable Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子.容量 是哈希表中桶 的数量,初始容量就是哈希表创建时的容量.注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索.加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度.初始容量和加载因子这两个参数只是对该实现的提示.关于何时以及是否调用 rehash 方法的具体细节则依赖于该实现. 通常,默认加载因子(.75)在时间和空间成本上寻求一种折衷.加载

java集合框架之Map

Map: 一次添加一对元素(key->value) 双列集合,键值对 常用方法: 1.  添加 V put(K key , V value)会更新key对应的value,并返回被替换的value 2.  删除 clear():清空集合 V remove(K key) :根据指定的key删除这个键值对 3.  判断: Boolean containsKey(key) Boolean containsValue(value); Boolean isEmpty(); 4.  获取 Value get(