黑马程序员_Java基础_集合框架
来源:互联网 发布:英国大学用哪种gpa算法 编辑:程序博客网 时间:2024/04/26 03:59
----------Android、Java开发期待与您交流----------
为什么会出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进行存储,集合就是存储对象最常用的一种方式数组和集合类同是容器,有何不同?
数组可以存储对象,但长度是固定的;集合长度是可变的。
数组中可以存储基本数据类型,集合只能存储对象
集合的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象
常用的集合
List、Set、Map是这个集合体系中最主要的三个接口。
其中List和Set父接口为java.util.Collection
一.ArrayList和LinkedList父接口为java.util.List,此接口实现类中存储的元素允许重复出现
1.ArrayList用数组结构实现,LinkedList用链表结构实现
2.查询列表使用ArrayList速度快,多列表添加或删除元素频繁,使用LinkedList效率高
3.允许列表元素为全部null
4.两个实现类均不同步,当多个线程同时访问而且至少有一个线程修改了集合那么它必须外部 同步或者采用实现了同步的Vector替代
二.java.util.Set接口
一个不包含重复元素的Collection,即任意的两个非空元素,e1.equals.(e2)=false(hashcode也需要不同);元素中最多包含一个null
HashSet和TreeSet为两个实Set接口的现类,SortedSet为子接口
HashSet使用散列表数据结构实现
TreeSet为SortedSet的实现类,采用红黑树数据结构对元素排序,分自然排序和定制排序,默认情况下是自然排序
1.不能保证元素的排列顺序,顺序可能发生变化
2.HashSet和TreeSet是不是同步的,多线程同时访问,而其中至少一个线程修改了Set,那么要通过代码实现同步
尝试把一个对象添加到TreeSet中时,该对象的类必须实现Comparable接口,否则会出现异常;在添加第二个元素时,会调用TreeSet会调用该对象的compareTo(Object obj)方法时会出现异常,而且向T
reeSet添加的对象应该属于同一个类的对象,否则也会引发异常
Map接口
一个以键(key)-值(value)对存放数据的容器,一个唯一的key可以对应相同的value
已知的实现类有HashMap(散列表)、TreeMap(红黑树)、HashTable(散列表)……
HashMap和TreeMap
1.HashMap中允许为null的键值,而且元素没有顺序
2.TreeMap中的元素根据其键的自然顺序进行排序
3.在Map中插入、删除元素HashMap效率高,但要多Map进行自然排序或自定义排序选择TreeMap 更合适
HashMap和HashTable
1.HashTable不允许null的键或值出现
2.HashTable线程同步
----------Android、Java开发期待与您交流----------
0 0
- 黑马程序员_Java基础_集合框架
- 黑马程序员_Java基础_集合框架
- 黑马程序员_java基础_集合框架
- 黑马程序员_Java基础_集合框架1
- 黑马程序员_Java基础_集合框架2
- 黑马程序员_Java基础_集合框架(一)_14
- 黑马程序员_Java基础_集合框架(二)_15
- 黑马程序员_Java基础_集合框架(三)_16
- 黑马程序员_Java基础_集合框架(四)_17
- 黑马程序员_Java基础04_集合框架
- 黑马程序员_Java基础_集合框架成员Collection
- 黑马程序员_Java基础_集合框架成员Map
- 黑马程序员_Java基础_集合框架工具类
- 黑马程序员_Java基础_集合框架1
- 黑马程序员_Java基础_集合框架2
- 黑马程序员_java基础学习笔记06_集合框架
- 黑马程序员_java基础_泛型、集合框架工具类
- 黑马程序员_Java语言_集合框架
- activemq报错问题收集
- Asp.Net MVC4开发三:HTML5、CSS3、JQuery、JQuery UI的应用
- C++之引用
- 使用shell脚本进行系统备份
- 探秘 widget 之 launcher 添加 widget 的流程分析
- 黑马程序员_Java基础_集合框架
- 黑马程序员--编程基础I--
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- 查看终端设备
- 数据库相关整理
- C++ Primer学习之(10)——关联容器
- Java中的简单工厂模式
- BT雷人的程序语言
- HotSpot VM GC 的种类