Java学习日记-12 集合(2)
一、List<E>接口
(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)
1.实现类ArrayList\LinkedList
ArrayList顺序存储,易读取,难增删
LinkedList链式存储,易增删,难读取
2.List的一些方法
void add(int index, E element)
将指定元素插入(其后元素顺延一个位置)到指定位置,注意index不能超过列表的size()
E get(int index)
返回列表指定索引位置的元素(Collection没有get方法,所以要用Iterator遍历,但是对于List,可以利用索引和get方法进行遍历)
int indexOf(Object o)
返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1
public List<E> subList(int fromIndex,int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。(如果 fromIndex 和 toIndex 相等,则返回的列表为空)。
二、Set<E>接口
(不按特定顺序排序,无重复对象)
1.HashSet
添加元素时,按Hash值插入
2.LinkedHashSet
按插入顺序读取
3.TreeSet
从小到大排序
4.Set对自定义类无法自动判断重复与否,需要在类中重写equals和int hashCode方法
(向Set集合中增加一个对象时,Set调用对象的equals()方法比较是否存在该对象)
(比较两个对象是否相同时,先比较hash值,只有在hash值相等的情况下才进一步调用equals方法比较。
即hash code相等时两个对象相等的必要不充分条件。重写hashCode方法时,要注意与equals方法兼容,即a.equals(b)为true,a和b必须有相同的hash code)
5.TreeSet按照自然顺序对集合中对象排序
Q:自然顺序指什么呢?
A:指类实现的Compareble接口中的int compareTo方法定义的对象大小比较的规则
6.Set遍历用Iterator迭代器
最新文章
- 响应式WEB设计的9项基本原则
- XLT格式化XML那点事(C#代码中的问题解决)(二)
- time 模块
- Wamp 简单使用方法
- 十分钟搞懂什么是CGI
- 使用git了解代码编写过程
- Xcode使用版本
- C#导出数据至excel模板
- Jquery 操作xml 文档的方法
- eMMC(KLM8G2FE3B)
- 怎样克服 JavaScript 框架疲劳?
- CI 笔记 datagrid的调用,不支持多页面多次调用js
- 用 rsync 同步本地和服务器的文件
- poj 1011 Sticks ,剪枝神题
- 【转】jqGrid学习之参数
- python 标准库 -- requests
- 解决指向iframe的target失效
- 数据排序--vue
- CDH:5.14.0 中 Hive BUG记录
- c++ stl sort