您的位置:首页 > 编程语言 > Java开发

java核心技术 卷一 读后感之 集合

2018-03-23 10:18 211 查看
一、集合 
集合:一种工具类,就像容器,存储任意数量的具有共同属性的对象。



集合的作用:
1、在类的内部,对数据进行组织;
2、简单快速的搜索大数量的条目;
3、有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素。
4、有的集合接口,提供了映射关系,可以通过关键字去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
集合和数组的区别:数组的长度的固定的,集合的长度是可以增加的。
数组只能通过下标来访问元素,类型固定,而有的集合可以通过任意类型查找所映射的元素。
list  排列有序,不唯一。   序列  Arraylist、linkedlist
queue 排列有序,不唯一。
队列  linkedlist 链表
set   无序,唯一。
map   键值对应的存储。可以为任何类型。

二、遍历集合
都是用迭代器Iterator 进行遍历集合中的数值。
一般可以使用next方法进行逐个访问,但到末尾。会抛出NoSuchElementException异常。因此在用next方法前要调用hasNext方法。来判断是否还有下一个元素,
有返回true,没有为fales。
在Java中迭代器是位于两个元素之间。当调用next是,迭代器就越过下一个元素,并返回刚刚越过的那个元素。
可以用迭代器Iterator的remove方法来删除元素。



1> Java 的集合框架是用来在内存中存取数据的。

2> 集合框架继承体系结构,参看图片
Collection 接口:不唯一,无序
List 接口(线性表):不唯一,有次序
Set 接口(数学集合):唯一,无序

Map 接口:键-值对

3> ArrayList 动态数组
优点:利于随机访问
缺点:不利于插入删除
add(Object)
add(int, Object)
remove(int)
remove(Object)
// 通过 equals() 比较对象,只删除找到的第一个元素
contains(Object)
判断一个对象是否在集合里,是通过 对象的 equals() 方法。
默认的 equals() 继承自 Object,只比较引用;
可重写对象的 equals() 方法,比较值。
get(int)
size()
isEmpty()

4> LinkedList 链表
优点:利于插入删除
缺点:不利于随机访问
addFirst(Object)
addLast(Object)
getFirst()
getLast()
removeFirst()
removeLast()

5> HashSet 哈希集
优点:能保证数据唯一且性能很好
缺点:不能随机访问
add(Object)
remove(Object)
clear()
contains(Object)
size()
iterator() 返回迭代器对象

6> 迭代器概念,参看迭代器示意图
hasNext() : boolean 返回是否有下一个元素
next() : Object 返回下一个元素

7> TreeSet 树集(采用红黑树算法)
优点:能保证数据唯一且性能很好,可按照某个属性排序
缺点:不能随机访问
*默认时,使用元素的 compareTo() 方法进行比较,这要求元素必须实现 Comparable 接口
*也可以传入比较器(实现 Comparator 接口的对象)对象来改变默认比较方式

8> Comparable 可比较接口
int compareTo(Object)
当前对象等于传入对象,返回 0;
当前对象小于传入对象,返回 负数;
当前对象大于传入对象,返回 正数;

9> Comparator 比较器接口
int compare(Object o1, Object o2)
o1 等于 o2,返回 0;
o1 小于 o2,返回 负数;
o1 大于 o2,返回 正数;

10> HashMap
优点:存储键值对,可以方便的从键获取值,性能优良
缺点:不能用下标随机访问

哈希算法原理:参看 哈希表结构

put(Object key, Object value)
get(Object key) : Object
keySet() : Set
values() : Collection
entrySet() : Set<Map.Entry>
Map.Entry:
getKey()
getValue()

***遍历:
1) 通过 keySet() 遍历
2) 通过 entrySet() 遍历

11> 泛型

  在创建集合时指定类型参数,说明放入集合的元素必须是某种类型。

List<News> list  = new ArrayList<News>();
优点:  1) 进行类型检查,防止不一致的数据放入集合
2) 取出元素时,不用进行类型转换

12> Collections 算法类
sort(Collection) : 排序算法
binarySearch(Collections) : 二分查找,在有序的集合上进行查找
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: