java的Set, List, Map简单介绍
Set, List, Map
Set和List,Map都是集合,Set和List都是继承于Collection接口,而Map不是。
1.Map(映射)
:Map是以key,Value的形式存储数据的映射集合,在取出数据时也是以key去获取value的值。
.HashMap:一个典型的继承Map的类,内部是基于散列表来存取数据,大大的提高了数据的访问速度。key的值是不能重复的,但是value值是可以重复。
.LinkedHashMap:类似于HashMap,只是迭代遍历时是按照插入的顺序排列的。
.TreeMap:以树的形式存储数据,迭代遍历的值是经过排序的。
主要方法:
void put(Object key, Object value); 像map集合插入元素
Object get(Object key); 根据key的值取得所映射的元素
Object remove(Object key); 删除key所映射的元素,并返回该元素
void putAll(Map m); 将符合标准的map插入到此map中
void clear(); 清空整个集合
Set keySet(); 获取所有的key值
Collection values(); 获取所有的value值
因为Map的key是不可重复的,所以获取的key值存入Set集合,而value是可重复的,所以存入Collection
2.Set(集合)
Set集合是一个不可重复,无序的集合。与Colletion一模一样
.HashSet:内部以HashMap来存储数据的HashSet的值为HashMap的key值,HashMap的value是一个Object的类
.TreeSet:TreeSet类实现了SortedSet接口,对集合中的对象进行排序
主要的方法:
void add(Object obj); 向集合添加一个元素
boolean remove(Object obj); 删除集合中的指定元素, 成功返回true
void clear(); 清空整个集合
Object[] toArray(); 将集合转换为一个数组
boolean contains(Object obj) 集合是否存在obj元素
遍历Set集合需要使用迭代器Iterator
Iterator it = set.iterator();
while (it.hasNext()) { // 是否存在下一个元素
it.next(); // 存在,取得下一个元素
}
3.List(列表)
List继承于Collection,但是相比较于Set,List在继承Collection的同时,添加了跟多的方法,且List集合是线性存储
.ArrayList:内部以Array的形式实现,优点:查找访问速度快
.LinkedList:内部以链表的形式实现,优点:插入,删除等操作速度快
List集合可以使用新循环和迭代器遍历集合:
for:
for (Object obj : list) {
System.out.println(obj);
}
Iterator:
Iterator it = list.iterator();
while(it.hasNext()) {
Systemo.out.println(it.next());
}
主要方法:
void add(Object obj); 添加元素
void add(int index, Object obj); 插入元素到指定位置
void get(int index); 取得指定位置元素
void remove(int index); 删除指定位置元素
int indexOf(Object obj); 制定元素的地址
void toArray(); 将集合转换为数组
int Size(); 集合的长度
最新文章
- spring源码分析之cache注解
- Rxjava的基本使用
- uva11025 The broken pedometer
- WOJ-1203
- HDU 1542 线段树+扫描线+离散化
- ADO.NET中ExcuteNonQuery获取存储过程Return返回值
- lua5.3调用C/C++
- 腾讯QQ首次在PC端采用气泡式聊天界面(from:36kr)
- koa+mysql+vue+socket.io全栈开发之数据访问篇
- SmartSql Redis 分布式缓存
- JS prototype 生成机制
- 20165234 2017-2018-2《Java程序设计》课程总结
- ubuntu16.04下vim的安装与配置
- [转载]Oracle PL/SQL之LOOP循环控制语句
- SSH配置文件详解
- HTTP协议学习【转】
- laravel 5.5 跨域问题解决方案
- DotNet_Performance_Tuning_ANTS_Performance_Profiler
- 处理“位域”枚举类型变量的几个例子
- spring中的default-lazy-init参数和lazy-init
热门文章
- Qt在线讲座之QML脚本书写规范
- linux 块设备驱动(五)——块设备应用层的操作
- windows常用快捷键(转载)
- LeetCode: Binary Tree Postorder Traversal [145]
- 在给mysql数据库备份时,报错: mysqldump: Got error: 145: Table '.\shengdaxcom\pre_forum_thread' is marked as c rashed and should be repaired when using LOCK TABLES
- Oracle 11gR2 使用RMAN Duplicate复制数据库
- Mac 操作系统安装 SVN server教程(Subversion With Mac OS X Tutorial)
- linux定期判断网站可否打开
- self = [super init]的解释
- js的单线程与异步