redis中set和list区别有哪些
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了redis中set和list区别有哪些,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2901字,纯文字阅读大概需要5分钟。
内容图文
![redis中set和list区别有哪些](/upload/InfoBanner/zyjiaocheng/589/47d952bf580541d792cc475c2f5f6d37.jpg)
![redis中set和list区别有哪些 - 文章图片](/upload/getfiles/0001/2021/4/27/20210427084220202.jpg)
list和set的区别:
1、List和Set都是接口继承于Collection接口。
2、最大的不同就是List是可以重复的。而Set是不能重复的。(注意:元素虽然无放入顺序,但是元素在set 中的位置是有该元素的3、HashCode决定的,其位置其实是固定的)
3、List接口有三个实现类:LinkedList,ArrayList,Vector ,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
4、List适合经常追加数据,插入,删除数据。但随机取数效率比较低。
5、Set适合经常地随机储存,插入,删除。但是在遍历时效率比较低。
Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.
总结:List有顺序有重复没有排序,set无重复有排序,map的key也和set一样。如果想跟List一样需要有插入元素的顺序,请使用LinkedHashSet或者LinkedHashMap。
List的功能方法
实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。
List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。
ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和移除元素。因为那比LinkedList开销要大很多。
LinkedList : 对顺序访问进行了优化,向List中间插入与删除的开销并不大。随机访问则相对较慢。(使用ArrayList代替。)还具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。
For example:
ArrayList与迭代器的使用
List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()) { int i = iterator.next(); System.out.println("iterator==" + i); } for(Integer i: list) { System.out.println("i=="+ i); } ListIterator<Integer> listIterator = list.listIterator(); while (listIterator.hasNext()) { int j = listIterator.next(); System.err.println("listIterator==" + j); }
Set的功能方法
Set : 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。
HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。
TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。
LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
更多Redis相关知识,请访问Redis使用教程栏目!
以上就是redis中set和list区别有哪些的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的redis中set和list区别有哪些全部内容,希望文章能够帮你解决redis中set和list区别有哪些所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。