ArrayList,HashSet,SortedSet之间的区别是什么?
今天看Redis官方案例,出现了列表和集合概念,列表在Java中指的就是List,集合在Java中指的就是Set,那么怎么实现列表和集合,以及它们有什么区别呢?
我写了个Demo演示下:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
public class ListDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//对比:Set是结合,List是列表
//HashSet里面的值是是不可重复的,ArrayList里面的值可以重复
//HashSet和ArrayList的数据都是无序的
//TreeSet继承SortedSet,它是有序的。
Set<String> set=new HashSet<String>();
set.add("444");
set.add("222");
set.add("aaa");
set.add("111");
set.add("333");
set.add("bbb");
for(String str:set) {
System.out.println(str);
}
System.out.println("------分割线------");
SortedSet<String> sortedSet=new TreeSet<String>();
sortedSet.add("444");
sortedSet.add("222");
sortedSet.add("aaa");
sortedSet.add("111");
sortedSet.add("333");
sortedSet.add("bbb");
for(String str:sortedSet) {
System.out.println(str);
}
System.out.println("------分割线------");
List<String> list=new ArrayList<String>();
list.add("444");
list.add("222");
list.add("aaa");
list.add("111");
list.add("333");
list.add("bbb");
for(String str:list) {
System.out.println(str);
}
}
}
得出的结果如下所示:
aaa bbb ------分割线------ aaa
bbb
------分割线------ aaa bbb
可以验证我的注释:
HashSet里面的值是是不可重复的,ArrayList里面的值可以重复
HashSet和ArrayList的数据都是无序的
TreeSet继承SortedSet,它是有序的。
是正确的。
最后为了更好的理解,找了一张结构图供亲们参考:

ArrayList,HashSet,SortedSet之间的区别是什么?的更多相关文章
- List、Set、Map 之间的区别是什么?(未完成)
List.Set.Map 之间的区别是什么?(未完成)
- ArrayList,Vector,HashMap,HashSet,HashTable之间的区别与联系
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...
- LinkedList,ArrayList,Vector,HashMap,HashSet,HashTable之间的区别与联系
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...
- 毫不留情地揭开 ArrayList 和 LinkedList 之间的神秘面纱
先看再点赞,给自己一点思考的时间,思考过后请毫不犹豫微信搜索[沉默王二],关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有技术大佬整理的面试题, ...
- ArrayList和List之间的转换
开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util.ArrayList; import java.util.L ...
- 集合之ArrayList,HashSet,HashMap
结合框架的体系结构: 一.List(列表) 1. List的特点 (1)List是元素有序并且可以重复的集合,称为序列 (2)List可以精确的控制每个元素的插入位置,或删除某个位置的元素 (3)Li ...
- ArrayList和Array之间的转换
ArrayList转Array (1):使用ArrayList的toArray方法. 1)当ArrayList中存放的是引用类型时(例如String),成功 /** * 使用 ...
- sqlserver版本分类下载以及各个版本之间的区别是什么
很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天亦是美网络就给大家分享一下sqlserver各个版本之间的区别,以及各 ...
- 集合篇-----ArrayList与LinkedList之间的那些小事
各自特性: ArrayList : 是一由连续的内存块组成的数组,范围大小可变的,当不够时增加为原来1.5倍大小,数组. :调用trimToSize方法,使得存储区域的大小调整为当前元素数量所需要的 ...
随机推荐
- 聊聊 Airtest 自动化工具
阅读文本大概需要 5 分钟. 很多读者看过之前的文章,发现我使用最多的是一款 Airtest 的自动化测试框架. Airtest 是一款适合于游戏和 App 的 UI 自动化测试框架. 下面对 Air ...
- SecureCRT语法高亮设置
因为默认情况下,SecureCRT不能显示语法高亮特性,整个界面颜色单一,看起来不爽,也没有效率,所有通过设置一下语法高亮还是很有必要的, 默认字体也看着不是很清晰,还是更改为我比较喜欢的Courie ...
- 寄生or独立 中国代工厂的悲惨抉择
2015年苹果.三星.国产手机依旧外表光鲜,最起码,从出货量上看,他们的日子过得还不错,年终奖应该是能发得出来,但这些光鲜的品牌商背后,是一个个悲惨的代工厂,以及一个又一个"一将功成万骨枯& ...
- gedit搭建c开发环境
在管理外部工具中,创建启动脚本 #!/bin/sh DIR=$GEDIT_CURRENT_DOCUMENT_DIR NAME=$GEDIT_CURRENT_DOCUMENT_NAME /home/lx ...
- 在虚拟机单机部署OpenStack Grizzly
安装过程 安装Ubuntu 我手头有的是Ubuntu Server 12.04 64位版,就直接用了,默认安装即可,配置的时候很简单,如下 内存:1G 硬盘:20G 处理器:2 网络:NAT 装好以后 ...
- 【Eclipse】eclipse设置,为了更简单快捷的开发
保存时自动导包 Windows->Perferences->Java->Editor->Save Actions
- python 保存两位小数
一.代码 import decimal decimal.getcontext().rounding = decimal.ROUND_HALF_UP def index(number): n = str ...
- 2019年后,Java岗面试快速突击指南
大家好.这篇文章给大家分享一下如何获得一个可以去参加面试的最小可行知识(Minimal Viable Knowledge)!我自己在就基本上靠文章中的策略在找实习的时候拿到了头条阿里的offer.所以 ...
- 前端如何真正晋级成全栈:腾讯 Serverless 前端落地与实践
Serverless 是当下炙手可热的技术,被认为是云计算发展的未来方向,拥有免运维.降低开发成本.按需自动扩展等诸多优点.尤其是在前端研发领域,使用 Node 开发云函数,可以让前端工程师更加专注于 ...
- 前阿里数据库专家总结的MySQL里的各种锁(上篇)
0.前言 MySQL按照加锁的范围,分为全局锁.表级锁.行级锁. 本文作为上篇,主要介绍MySQL的全局锁 和 表级锁. 重要的实战总结为,如何安全地变更一个表的表结构. 1.全局锁 定义: 全局锁就 ...