
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中间插入和移除元素。
白瓜面试
白瓜面试 - AI面试助手,辅助笔试面试神器
162
查看详情
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区别有哪些的详细内容,更多请关注其它相关文章!
# 是在
# 迎泽区网站推广公司地址
# 泰州营销推广网站有哪些
# 北京快手推广营销
# 怎么做手机号营销推广呢
# 营销推广职业能力要求
# 摄影seo培训
# 怎么推广团购网站呢知乎
# 天津品质网站建设风格
# 标准网站建设特点包括
# 湛江seo自然优化
# redis中set和list区别
# 迭代
# 都是
# 如何处理
# 有哪些
# 较低
# 它可以
# 而不
# 移除
# 遍历
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
消除网页顶部意外空白线:CSS布局常见问题与解决方案
《新三国志曹操传》游历事件袁尚突围攻略
金牛福袋获取攻略
如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成
TikTok收藏夹无法删除视频如何解决 TikTok收藏管理优化方法
一点万象签到领积分指南
Pandas中基于动态偏移量实现DataFrame列值位移的策略
酷狗音乐多音轨设置教程
5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备
c++如何使用std::thread::join和detach_c++线程生命周期管理
mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法
微博网页版访问入口 微博网页版网页端使用指南
解决PHP MySQL数据库更新无响应:SQL查询语法错误解析
Highcharts雷达图轴线交点数值标注指南
AO3中文版手机快速通道_AO3最新稳定链接更新
微信注销后银行卡解绑了吗_微信注销后银行卡解绑状态
Chart.js 教程:自定义插件实现图表与图例间距调整
《优志愿》修改手机号方法
《随手记》备份数据方法
yandex网页版直接登录 yandex官方入口平台访问方法
在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明
Sublime怎么快速复制文件路径_Sublime右键菜单增强技巧
VS Code快捷键when上下文子句的妙用
CSS如何使用outline-offset与颜色组合突出元素边框
C#解析来自网络的XML流数据 实时错误处理与重试机制
手机坏了微信聊天记录怎么导出来 新手机恢复聊天记录技巧
《我的恋爱逃生攻略》中文名字输入方法
PHP utf8_encode 字符编码转换疑难解析与最佳实践
键盘保修需要什么_键盘售后维修流程
TikTok网页版实时观看入口 TikTok网页版短视频在线浏览
背部总是隐隐作痛怎么回事 背痛如何改善
如何在Golang中处理表单文件上传_Golang 表单文件上传示例
小红书网页版首页入口 小红书网页版电脑端官方登录链接
邮政快递寄件查询入口 邮政快递收件查询入口
鸣潮历史学家灯塔位置一览
吃完饭就犯困是什么原因 餐后嗜睡如何缓解
GBA模拟器手柄按键设置
汽车之家网页版免费登录_汽车之家官网首页直接进入
《火花chat》搜索好友方法
OpenWeatherMap API:通过城市名称获取天气预报数据指南
微信网页版在线登录 微信网页版在线使用入口
红手指专业版app注册教程
在Dash应用中自定义HTML标题和网站图标
视频号视频怎么免费保存到相册?保存到相册需要注意什么?
解决SQLAlchemy模型跨文件关联的Linter兼容性指南
Linux如何开发轻量级数据服务模块_Linux服务化设计
《procreate》绘制渐变效果教程
包子漫画官网链接官方地址 包子漫画在线观看官网首页入口
PHP odbc_fetch_array 返回值处理:如何正确访问嵌套数组元素
基于键值条件高效映射 Pandas DataFrame 多列数据
2019-06-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。