Java集合框架小结
一、什么是集合框架?
- 概述
集合是一个容器,由多个项目组成的一个单元组, 比如说巧克力罐里面装有各种各样巧 克力,一组商品列表的名称;
集合几乎在java语言的每个地方都用到了,你敢说没吗?他带着几个集合类:Vector Array Stack HashTable
集合由以下几部分组成:
接口(interface):
集合中提供了抽象的数据类型来表示接口,Java.util.Collection 在集合的层级关系中是最顶层的接口(root interface);
他包含了一些重要的也是常用的方法,例如:size(); add(); remove(); iterator(); clear();
在java.util.List, java.util.Set, java.util.Queue, java.util.Map 接口中实现类一定会实现;
但是其中Map接口不是继承自java.util.Collection 接口的,但是都属于集合框架,因为他们都是在java.util 包下面
实现类(Implementtation Class)
java 对这些集合接口都提供了核心实现类,可以使用他们在我们的程序中创建不同的集合类型
比如像一些比较重要的集合类 ArryList LinkedList HashMap TreeMap HashSet
TreeSet 这些类是在我们平时使用最多的。
当然了如果我们需要使用一些比较特殊的集合类,我们可以继承他们然后创建我们自定义的实现类
在java1.5中提供了一些允许修改集合同时遍历的集合类, 这是线程安全的;比如一些:CopyOnWriteArrayList
ConcurrentHashMap CopyOnWriteArrySet 这些类是存在java.util.concurrent包中;
要明白的是:所有的集合类都存在java.util 和 java.util。concurrent包中!!
二、集合框架接口
集合接口是集合框架的基础!
所有的核心集合的接口是通用的,比如说公共接口Collection<E> 了解泛型就知道, E所表示的是泛型。当我们
在使用或者是说指定集合的时候,我们就用E来指定包含类的对象 这句话不理解的话 请了解泛型的概念;
这样的好处是可以在我们的运行错误减少很多, 他会在编译时会检查语义的正确与否
- Collection Interface
Collection 接口是接口层级的根。由元素对象组成的一组东西叫做集合, 就这么说吧,不太好比喻。
在这个接口中会提供方法来告诉你在集合中有多少元素 size(), 还有检查指定对象是否存在 contain()
和添加元素方法add() 删除元素方法remove() 并且提供一个迭代器
还提供了一种批量操作的,想必都用过:containsAll(); addAll(); removeAll(); retainAll(); clear();
- Iterator Interface
Iterator接口提供的方法就是可以遍历整个集合, 通过它可以得到这个集合的任意的实例;
迭代器允许我们在迭代的过程中从底层移除元素。
- Set Interface
set的集合不能包含重复的元素,在java中一般有三种通用的实现set接口的方法:
HashSet TreeSet LinkedHashSet
这个接口呢不允许随机访问这里面的元素,通俗点就是不能通过索引或下标的方式
只能通过迭代器或者foreach循环来遍历集合中的元素。
- List Interface
我们常用接口,List列表是一个有序的集合,他可以包含重复的元素, 我们可以从索引去访问集合的任何元素
而且这个集合的长度是动态的。其中ArrayList 和 LinkedList 是实现这个接口的类
List接口提供了一种可以为指定的位置添加值的方法,还可以使用索引去替换和删除该元素
- Queue Interface
这是一个队列接口
队列集合一般是用来处理保存多个元素,除了这个之外还提供了插入,提取,一些检查的操作。
典型的队列都是先进先出,这个都好理解,新插入的元素都排在队列的尾部
- Map Interface
Map接口也是大家用的比较多的了, Map集合是由一个关键字K 映射到一个值对象V;
一个Map集合不能包含重复的key, 每一个键只能对应一个值(也就是说无论你put 了多少次,都是以最后的值为准!)
java中实现的类有:
HashMap TreeMap LinkedHashMap
Map集合的一般操作就是get(key) put(key) containskey(key) containsvalue(V) isEmpty();
具体的用法查阅API;
- ListIterator Interface
列表迭代器接口:
这个集合呢允许我们从任何方向开始遍历,在迭代的时候任意修改值,并可以得到对象的当前位置;
它没有像list集合一样有当前元素这么一说法,他元素的当前位置就是返回元素的上一个元素和下一个元素之间
- SortedSet Interface
这是一个会自动按照升序排序的集合,一般是利用这种排序的功能做一些额外的操作, 适合用于单词列表和一些名单等
- SortedMap Interface
也是一个会自动按照排序的集合,不过不同点就是会按照key 的值排序, 适用于字典啊 电话薄什么的
三、集合框架类
java集合框架有很多的实现了接口的类,我们用的最多的就是ArryList HashMap
HashSet
在java1.5版本中就开始加入了并发的实现类。例如:CopyOnWriteArrayList ConcurrentHashMap
一般的来讲,集合类都不是线程安全类,他们是快速的迭代器(通俗的讲)
- HashSet Class
这个类是实现了Set接口, 他的集合迭代是没有顺序, 可以存在空元素
提供了基本的操作:add() remove() contains() size(), 他的数据存储是基于哈希表结构的,所以在使用中他会自动的去增大容量
- TreeSet Class
这个比较啰嗦, 没理解;
- ArrayList Class
这个就是比较熟悉的类了,他是实现了List接口 是一个可以调整大小的基于数组的实现类
类本身提供了一些方法去操作内部的存储数组大小,这个类不是同步的,不是线程安全类
- LinkedList Class
他是一个实现了List接口和双向队列的接口,他可以从集合的任意一端去执行操作(add or update)
是双向链表
- HashMap Class
基于哈希表的接口实现类,允许k v 为null, HashMap 大致上和HashTable 一样,除了之前说的允许为NULL值
类中的集合数据是无序保存的。
提供了常用的操作 get 和 put 方法, 而且可以通过构造函数来初始化集合的大小
- TreeMap Class
了解不多 先暂停理解
- PriorityQueue Class
这个类是优先级队列实现类, 这个得好好理解, 有时候我们希望根据元素的优先级进行处理,这个情况下就用上场了,
PriorityQueue 不允许元素空值, 且是无边界的, 这个我接下来用个专门的列子来学习学习,先放放
四、Collection 类
- Collection class
这个类包括了一下集合操作的静态方法, 会返回一个新的指定的集合实例,可以通过代码 new Collection() 看看。
还包括了一些集合框架的算法, 比如说二分查找, 排序等方法 可以把这个类当做工具类来使用。
- Collection 同步包装的方法
同步封装器为任意的集合都添加了自动同步, 也就是线程安全。其中这些核心接口有一些静态的工厂方法可以调用
每个方法都返回一个指定集合(自动同步)
ublic static Collection synchronizedCollection(Collection c);
public static Set synchronizedSet(Set s);
public static List synchronizedList(List list);
public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m);
public static SortedSet synchronizedSortedSet(SortedSet s);
public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m);
五、线程安全的集合
从java1.5就包含了线程安全的集合类, 可以同时遍历和修改元素
这些类有一些是
CopyOnWriteArrayList, ConcurrentHashMap, CopyOnWriteArraySet.
最后用一张图来说明他们的特性
请看附件(不知道怎么贴图)
理解不到位的地方请多包涵,继续学习
- 大小: 12.4 KB
分享到:
相关推荐
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
### Java集合框架使用总结 #### 前言 本文旨在为读者提供关于Java集合框架的概览性介绍,帮助理解其整体架构与设计理念。对于希望深入掌握特定接口或类使用方法的学习者,建议查阅官方提供的Java API文档。 #### ...
总结来说,Java集合框架为开发者提供了丰富的数据结构选择,能够适应各种场景下的数据处理需求。理解并熟练使用这些接口和类,对于提高代码的效率和可维护性至关重要。在实际开发中,根据具体需求选择合适的容器类型...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地管理和操作数据。本文主要围绕Java集合框架的核心概念、接口和类进行阐述。 首先,集合框架是Java中用于...
根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
### Java集合框架总结 在Java编程中,集合框架(Collections Framework)是处理数据的重要工具集,它提供了一系列接口和类来存储、操作和检索不同类型的元素。本文将深入解析Java集合框架的关键知识点,涵盖其核心...
总结来说,理解数据结构和掌握Java集合框架是每个Java开发者必备的技能。它们不仅影响代码的可读性和可维护性,也直接影响到程序的执行效率。熟悉这些概念并能灵活运用,将使你在编程实践中更加游刃有余。通过阅读如...
根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...
"Java集合框架面试题" Java 集合框架是 Java 语言中的一组预定义类和接口的集合,用于存储和操作数据。下面是 Java 集合框架的知识点总结: 1. Java 集合类主要有两大分支:Collection 接口和 Map 接口。...
本篇文章将对Java集合框架进行深入的总结,包括其核心接口、类以及常用方法。 1. **集合框架概述** Java集合框架的核心接口主要有两个:`Collection`和`Map`。`Collection`接口是所有单值容器的基接口,如`List`、...
Java 集合框架知识点总览 Java 集合框架是 Java 语言中提供的一种处理集合的机制,它提供了一种灵活、可靠、可扩展的方式来存储和操作对象的集合。在本章节中,我们将详细介绍 Java 集合框架的主要组成部分、使用...
总的来说,Java集合框架是一个强大的工具集,合理利用能极大地提升代码质量和效率。通过深入学习其源码,我们可以更好地理解其工作原理,解决实际问题,提升编程技能。对于开发人员来说,掌握集合框架的使用和源码...
总结来说,Java集合框架提供了丰富的数据结构选择,根据实际需求,如是否需要排序、是否关心元素顺序、是否需要线程安全、性能要求等,可以选择最合适的实现。理解这些接口和类的区别,能够帮助开发者编写更高效、更...