Java学习11 集合与映射
来源:互联网 发布:unity3d棋牌游戏教程 编辑:程序博客网 时间:2024/05/20 19:48
相关API关系结构
Collection Set HashSet TreeSet List ArrayList Vector ←Stack Map HashMap HashTable ←Properties TreeMap Enumeration StringTokenizer java.util.Arrays java.util.Collections集合
java.util.Collection接口
- 描述Set和List的接口
通用方法:
方法 描述 boolean add(Object o) boolean remove(Object o) int size() boolean isEmpty() boolean contains(Object o) void clear() Iterator iterator() Object[] toArray() 返回所有元素的数组
集(Set)
java.util.Set
HashSet
- 不保证集合中元素顺序,允许包含null元素
- 不是同步的
多线程可通过Set s = Collections.synchronizedSet(new HashSet(...));
包装使用
TreeSet
集合中的元素有序,元素必须实现Comparable接口,重写compareTo方法。
可参考TreeSet进行排序的2种方式:(1)默认按照对象的自然顺序进行排序; (2)用户自定义排序规则不是同步的
多线程可通过SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));
包装使用
自然排序
- Comparable接口
- public abstract int compareTo(Object obj):自然比较方法
- 用户在重写compareTo()方法以定制逻辑时,要确保与等价性判断方法equals()保持一致
Iterator接口
迭代器
方法 描述 boolean hasNext() Object next() void remove() 每次调用next只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的collection,则迭代器的行为是不确定的
列表(List)
java.util.List
其他方法:
方法 描述 void add(int index, Object element) 在指定位置插入指定元素 Object get(int index) 返回指定位置的元素 Object set(int index, Object element) 用指定元素替换指定位置的元素 int indexOf(Object o) 返回指定元素第一次出现的索引;如果不包含,则返回 -1 Object remove(int index) 移除指定位置的元素,返回所删除的对象ArrayList
- 长度可变;元素允许为null
- 不同步,非线程安全,适合单线程环境
方法 说明 ArrayList() ArrayList(int initialCapacity) 构造一个具有指定初始容量的空列表 void ensureCapacity(int minCapacity) 确保列表至少能容纳最小容量参数所指定的元素数 void trimToSize() 将实例容量调整为列表的当前大小Vector
- Vector是同步(线程安全)的,运行效率比ArrayList低一些,主要用于多线程环境中
Stack
- 继承了Vector类
- 后进先出
方法 说明 Stack() Object push(E item) 压栈 Object pop() 出栈 Object peek() 查看栈顶 boolean empty() void clear() int search(Object o) 返回对象在堆栈中的位置(最靠近栈顶),以 1 为基数
映射
java.util.Map
主要方法:
方法 描述 Object put(Object key, Object value) Object get(Object key) 返回指定键所映射的值;如果不包含,返回 null boolean containsKey(Object key) boolean containsValue(Object value) Set keySet() 返回映射中包含的键的Set视图 Collection values() 返回映射中包含的值的Collection视图HashMap
- 不保证元素顺序,允许使用null键和null值
- 不同步,只适用单线程环境
- 影响HashMap性能的两个参数:
- 初始容量(Initial Capacity)
- 加载因子(Load Factor):百分比;如容量为16,加载因子为0.75,当数量超过16*0.75=12个时,底层会调用相关方法扩容,如翻倍
HashTable
- 不允许null键和null值
- HashTable是同步的(线程安全),但效率相对较低,适用于多线程环境下
Enumeration接口
- 与Iterator接口类似,但只提供了遍历Vector/HashTable(及子类Properties)类型集合,且不支持remove操作
- Enumeration接口与Iterator接口联系和区别
参考:Java中,遍历数据结构Enumeration和Iterator相比有什么优劣
java.util.Collections类
定义了多种集合操作方法,包括排序、取极值、批量拷贝、批量转换、循环移位、匹配性检测等功能
方法 说明 void shuffle(List list) 扑克牌打乱排序
java.util.Arrays类
定义了多种数组操作方法,包括排序、填充、转化为列表或字符串、增强的检索、深度比较等
方法 说明
阅读全文
0 0
- Java学习11 集合与映射
- JavaSE学习 第十一章 集合与映射
- Java SE学习笔记:MAP与SET(集合与映射)
- Hibernate集合映射学习
- 学习总结-映射集合
- Java映射和集合
- java.util包——集合与映射(序)
- hibernate关联映射与集合映射详解
- hibernate关联映射与集合映射详解
- hibernate关联映射与集合映射详解
- Hibernate学习_015_集合映射
- hibernate集合映射学习笔记
- 集合映射与级联操作
- 集合:set 与 映射 map
- Java集合与框架总结与学习
- Java集合与框架总结与学习
- Java集合与框架总结与学习
- Java集合与框架总结与学习
- Linux c 遍历文件夹下的文件名
- 顺序栈——将十进制转换为二进制
- 初见Java消息中间件之ActiveMQ
- 实现邮箱用户注册-php-1
- 文件操作与模板 编程题#2: 实数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- Java学习11 集合与映射
- windows下补丁手动下载和安装
- IOPS的计算
- 2017-11-08-UPDATE-BY-ZengWenFeng.sql
- 操作符
- 计算圆和长方形的面积
- HDOJ--1052Tian Ji -- The Horse Racing 贪心!!!
- Sublime Text 3 利用 Snippet 创建 Getter 和 Setter
- Oracle:PL*SQL 编程(一)