千家信息网

redis中set和list的区别有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关redis中set和list的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。list和set的区别:1、List和Set都是接口继承于C
千家信息网最后更新 2026年11月01日redis中set和list的区别有哪些

这篇文章给大家分享的是有关redis中set和list的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

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 list = new ArrayList<>();                for (int i = 0; i < 10; i++) {                        list.add(i);                }                Iterator 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 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中set和list的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

元素 顺序 方法 接口 次序 排序 对象 重要 两个 位置 内容 功能 底层 开销 数据 是在 更多 速度 队列 保证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州百单互联网科技有限公司 中国互联网科技工作委员会毛军 互联网科技有限公司经营范围 互联网巨头科技公司 互联网金融 科技金融 南京欣网互联网科技 丰台科技园 互联网 西安互联网科技公司 安控科技rtu产品工业互联网 北京三清互联网科技 港股科技和互联网 明优互联网科技有限公司 锡山区互联网智能科技产品供应 互联网金融科技公司的优势 互联网领先科技宣传片 领航科技大厦互联网公司 互联网科技包装股份有限公司上市 全球科技与互联网公司市值变化 兰石爱特工业互联网科技分公司 互联网大会出现的黑科技 互联网科技产业 善班互联网科技有限公司 互联网女皇 腾讯科技 银川新华互联网科技职业技术培训学校图片 互联网金融科技展 锡山区互联网智能科技产品供应 工业互联网科技成果转化 青岛易易互联网科技 瑞安市蟠桃会互联网科技有限公司 利用互联网等科技手段
0