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

一、集合 

集合:一种工具类,就像容器,存储任意数量的具有共同属性的对象。

集合的作用:
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) : 二分查找,在有序的集合上进行查找
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值