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方法,使得存储区域的大小调整为当前元素数量所需要的 ...
随机推荐
- staruml百度网盘下载
分享staruml官方百度网盘下载 下载时间:2019年9月4日 21:27:37 StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具.StarU ...
- file / from install of XXX conflicts with file from package filesystem-XXX
在centos上安装一个偏门软件时出现如下问题: rpm -ivh mNetAssist-0.1.1-2.x86_64.rpm #执行命令 file / from install of XXX con ...
- Annotation标注
# View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...
- 杂记:Linux下gcc升级
公司要求,需要在CentOS6.5系统下进行一些测试.因为编写的测试程序中使用了一些C++11之后新增的特性,而CentOS6.5中安装的gcc版本为4.4.7,并不支持C++11,所以需要对gcc进 ...
- 查漏补缺:进程间通信(IPC):FIFO
1.FIFO FIFO,又称命名管道.不同于pipe管道的只能用于拥有共同祖先进程的两个进程间通信,因FIFO通过路径绑定,所以即使是不相关的进程间也可通过FIFO进行数据交换. FIFO是一种文件类 ...
- fastcgi_param详解
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY_STRI ...
- python常用魔术方法概览
构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __g ...
- celery异步任务框架
目录 Celery 一.官方 二.Celery异步任务框架 Celery架构图 消息中间件 任务执行单元 任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包 ...
- 在eclipse的Java类文件中,右上角出现大写字母A代表什么
代表这个文件(类)是一个抽象类abstract的第一个字母:
- SpringBoot学习笔记(一)入门简介
一.SpringBoot 入门简介 整体讲解内容概况: 1.1 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. Spring Boot ...