博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AJPFX总结Collection集合(下)
阅读量:7142 次
发布时间:2019-06-29

本文共 1826 字,大约阅读时间需要 6 分钟。

List集合特有方法

特有方法。凡是可以操作角标的方法都是该体系特有的方法。
add(index,element);在指定位置添加元素
addAll(index,Collection);
remove(index); 删除指定位置的元素
set(index,element); 修改元素
get(index): 通过角标获取元素
subList(from,to);
listIterator(); 特有迭代器,可对集合进行操作
intindexOf(obj): 获取指定元素的位置。
ListIteratorlistIterator();
List集合特有的迭代器。ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException异常。
所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。
该接口只能通过List集合的listIterator方法获取。
Vector
特有的取出方式:枚举(io中有用到)与迭代器一样。
Enumeration<E> elements()
返回此向量的组件的枚举。
Enumeration en = v.elements();
while(en.hasMoreElements())
{
System.out.println(en.nextElement());
}
LinkedList:特有方法:
void addFirst(); addLast();
添加元素
getFirst(); getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst(); removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
在JDK1.6出现了替代方法。
boolean offerFirst(); offerLast();
添加元素
peekFirst(); peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst(); pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。
堆栈数据结构 :先进后出,FirstIn Last Out -- FILO如同杯子。
队列数据结构 :先进先出,FirstIn First Out -- FIFO如同水管。
List集合
判断元素是否相同,依据是元素的equals方法。
contains()与remove()方法底层调用的是equals。
Set集合
Set集合的功能与Collection是一致的。
HashSet集合
如何保证元素唯一性的呢?
是通过元素的两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true;如果元素的hashcode值不同,不会调用equals。
注意,对于HashSet集合判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
TreeSet集合
保证元素唯一性的依据:compareTo方法return 0.
compareTo方法return 正数,元素向后放;compareTo方法return 负数,元素向前放。
用该方法直接return正数或负数,来完成集合元素的正序或逆序。
TreeSet排序的第一种方式:
让元素自身具备比较性。元素需要实现Comparable接口,覆盖compareTo方法。也种方式也成为元素的自然顺序,或者叫做默认顺序。
TreeSet排序的第二种方式:。
当元素自身不具备比较性时,或者具备的比较性不是所需要的。这时就需要让集合自身具备比较性。在集合初始化时,就有了比较方式(传入比较器)。
当两种方式都存在时,以比较器为主。
如何定义比较器?
定义一个类,实现Comparator接口,覆盖compare方法

转载于:https://blog.51cto.com/14314113/2396827

你可能感兴趣的文章
荣耀电竞堂又搞事情!带妹“吃鸡”还能得奖
查看>>
年终总结篇:2018年云计算产业十大趋势展望
查看>>
2018年香港海关执法案件逾2.2万宗 同比上升近四成
查看>>
欧盟驻华代表团到雄安新区参观考察
查看>>
人民币对美元汇率中间价报6.7343元 上调13个基点
查看>>
「每天一道面试题」Hibernate中SessionFactory是否线程安全?
查看>>
韩媒:美驻韩大使要求韩大幅上调防卫费分担额
查看>>
客运压力大 北京地铁4号线、大兴线工作日早高峰将限流
查看>>
中关村硬科技孵化器首次合作建科技成果转化创新平台
查看>>
广州外援斯贝茨被CBA公司停赛4场 罚款10万元
查看>>
福利!给所有需要找工作的小伙伴分享让我印象深刻的的开发面试题(第二部分),朋友们收好哦...
查看>>
React 折腾记 - (5) 记录用React开发项目过程遇到的问题(Webpack4/React16/antd等)
查看>>
Angular 6 + 折腾记 :(11) 写一个挺不靠谱的多少秒/分/时/天前的管道
查看>>
C++ 高性能服务器网络框架设计细节
查看>>
那一定都是你的错!- 一次FastDFS并发问题的排查经历
查看>>
redis限制请求频率及资源隔离
查看>>
详解Condition的await和signal等待/通知机制
查看>>
1206 - 长假之旅,即将开启
查看>>
Flutter 布局(一)- Container详解
查看>>
Log最佳实践
查看>>