黑马程序员--------集合
来源:互联网 发布:嘉兴市行知小学蔡老师 编辑:程序博客网 时间:2024/05/28 20:18
黑马程序员——集合
1集合概述
集合其实就是一个可以存放任意对象的一个容器,相比较数组来说,数组存放的数据类型是固定的,长度是固定的,而集合可存放任意类型数据,集合存放的都是引用类型的对象,而数组,你可以定义为引用类型数组,存放对象,也可定义基本类型数组。其实集合之所以能存放基本类型数据,主要是因为jdk1.5版本的自动拆箱和装箱的功能,把基本类型数据转成引用类型数据2单列集合体系结构及特点:
Collection
|__List::元素是有序的,存取的顺序一致.。因为该集合体系有索引。
| 注意:判断集合是否包含某个元素,以及删除某个元素,依靠的都是元素的equals()方法。
| |__ArrayList:底层使用的数据结构是数组结构。线程不同步
| |___LinkList:底层使用的数据结构是链表结构
| |__Vector:底层使用的数据结构是数组结构。线程同步
|
|—Set:元素是无须的(存入和取出的顺序不一致),元素不可重复。
| 并且Set集合的功能和Collection接口的功能是一致的
|__Hashset:底层的数据结构是哈希表。
| HashSet保证数据唯一性的原理:判断元素的hashCode值是否相同,,如果相同还会继续比较对象的
| equals()方法,是否为True
|__TreeSet::底层使用的数据结构是二叉树。可以对Set集合中的元素进行排序。
| TreeSet保证数据唯一性的原理是:根据元素的CompareTo方法,是否返回0;
TreeSet的两种排序方式:
(1)让元素自身具备比较性,元素需要实现Comparab 接口 ,覆盖 CompareTo方法,这种方式也 称元素的自然顺序。
(2) 当元素不具备比较性时,或具备的比较性不是我们所 需要时需要让集合具备 较性,在集合初始化时,就有了比较方式,即在构造函数 中定义一个比较器,将比较器对象作为参数传递给TreeSet集合中的构造函数 中。当两种排序都存在时,以比较器为主。
注意:
ArrayList判断元素是否存在,还有删除元素依赖的是元素的equals()方法,HashSet判断集合中是否包含某个元素,及删除 某个元素依赖的是hashCode()和equals()方法, TreeSet判断元素是否存在,还有删除元素依赖的是元素的compare()方法
3双列集合体系及特点:
Map
|_HashTable:底层是哈希表数据结构,不可以存入null键和null值,线程同步的。
|
|_HashMap:底层用的也是哈希表数据结构,允许使用null键和null值,线程不同步的,效率高,替代了 HashTable
|
|_TreeMap:底层是二叉树数据结构,线程不同步。可用于给Map集合中的键进行排序。
HashMap底层用的是hash表,所以他保证键唯一性的原理,主要依靠的就是hashcod()和equels()方法,跟HashSet有点类似;TreeMap采用的树状结构,所以他保证键唯一性的原理是依靠对象的比较性,如果对象没有比较性,就会报错,如果你添加的这个数据的键跟集合中的键有重复的,那么后面的会覆盖前面的,特别注意他的返回值是被覆盖的键的值。
0 0
- 黑马程序员:集合类
- 黑马程序员 集合类
- 黑马程序员:集合框架
- 黑马程序员---集合
- 黑马程序员_java集合
- 黑马程序员_集合
- 黑马程序员 java 集合
- 黑马程序员-集合相关
- 黑马程序员,集合List
- 黑马程序员-List集合
- 黑马程序员_集合
- 黑马程序员-集合框架
- 黑马程序员-集合
- 黑马程序员-集合框架
- 黑马程序员-集合总结
- 黑马程序员-集合类
- 黑马程序员---集合,泛型
- 黑马程序员 集合学习
- <学习笔记>Could not load the Tomcat server configuration
- LA 5092 Permutation Counting
- iOS XMPP 的使用
- JavaScript 的性能优化:加载和执行
- python - PyDev统一编码
- 黑马程序员--------集合
- Launchimage设置后在启动时无法显示
- cocos2d-x win32 log 中文乱码解决办法
- 投资理念:坚持就是力量
- Distance metric learning
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题
- 复制图片
- 多线程(创建线程-继承Thread类)
- 如何制做长辈疯传的网路分享图