Map集合
概述
双列集合是每个元素都有键与值两部分组成的集合,记录的是键值对对应关系,即通过键可以找到值
键必须是唯一,值可以重复
常用子类
最常用的双列集合是Map下的子类HashMap
LinkedHashMap
Hashtoble也是Map集合的一种已被HashMap取代
Map集合的特点
如是否可重复,是否有序仅用在键上,如HashMap集合的键不得重复,值可以重复
键是唯一的,且无序的
Map基本使用
Map接口的常用方法
V put(K key, V value);
*存储键值
*如果键值存在,则使用新值替换旧值,返回旧值
*如果键不存在,则直接存储,返回null
V remove(Object key);
*根据键删除键值对,返回键对应的值
*如果键不存在,则返回null
V get (Object key);
*根据键找对应的值
*如果键存在,则返回null
Int size();
*获得键值对的个数
boolean containsKey(Object key);
*判断集合中是否包含对应的键,包含返回true,否则返回false
boolean isEmpty();
*判断集合是否为空,有元素返回false,否则返回true
Map集合遍历方式的keySet()方法
Set<K> keySet();
思路
通过keySet()方法获取所有键的集合
遍历键的集合,获取到每一个键
根据键找值(调用get(Object key)方法键获得值)
Map集合遍历方式的entrySet()方法
Set<Entry>entrySet(); //获得Entry对象集合
思路
通过entrySet()方法获取所有键值对对象的集合
遍历键值对对象的集合,获取到每一个键值对对象
根据键值对对象找键和值(调用getKey和getValue方法)
entrySet()方法解释
Set<Map.Entry<K,V>>entry() 方法用于返回某个集合所有的键值对对象
Map.Entry说明Entry是Map的内部接口,将键和值封装成了Entry对象,并存储在Set集合中,可以从一个Entry对象中获取一个键值对的键和值
Entry对象
每一个值都会被封装成Entry对象
Entry对象常用方法
K getKey() 获取键
V getValue() 获取值
Map集合遍历方式增强for循环
不能直接使用增强for遍历,需要先获得键集合或Entry对象集合,然后使用增强for遍历或Entry对象集合
LinkedHashMap
概述
Linked链表结构保证元素有顺序,Hash结构保证元素唯一,以约束对键起作用
特点
底层是链表实现的可以保证怎么存怎么取
可变参数
概述
JDK1.5新特性
格式
数据类型...变量名
本质
就是一个数组
注意事项
可变参数必须是参数列表中的最后一个且只能一个
可变参数只能放在最后定义,可变参数方法本质时数组,所以不可以与数组类型参数重载
Collections工具类
Collections的常用方法
shuffle方法
作用: 打乱集合中元素的顺序
sort 方法
作用: 对集合元素排序
sort方法签名
public static<T>void sort(List<T> list)
有顺序:第一个元素是多少,第二个元素是多少,第几个元素对应的是第几,顺序不变
排序:不管是第几个放的,只要放到集合中,就按照一定的顺序重新排列了
Collections的二分法查找
binarySearch方法
作用: 查找集合中指定元素的索引
binarySearch方法签名
public static<T> int binarySearch(List<?>list, T key)
toString方法
作用: 返回字符串内容
toString方法签名
Public satic String toString(Xxx[] a)
Arrays工具类
Arrays常用方法
static string toString(int[] a);
将数组的元素拼接成指定格式的字符串
static void sort(int[] a);
将数组中的元素进行排序:默认是升序
static void fill(int[] a, int val);
使用指定的值填充数组中的每一个元素
static boolean equals(int[] a, int []a2);
比较两个数组的元素是否相同,相同返回true,否则返回false
static int binarySearch(int[] a, int key);
使用二分法查找法在指定的数组中查询指定元素key
要求:数组中的元素必须有序
如果找到,则返回该元素在数组的索引值
如果中找不到,则 返回值=-插入点-1
插入点=-(返回值+1)
static List asList(T...a);
将数组转换为集合
集合转数组
集合转数组使用的是ArrayList中的toArray()方法
该方法是重载的方法
Public Object[] toArray();
Public <T> T[]toArray(T[] a);
如果参数数组足够放下集合中所有元素,则将集合中的元素添加到参数数组并将参数数组作为返回值
如果参数数组无法放下集合中的所有元素,则参数数组只起到确定类型作用,方法逻辑会自动创建新数组存储集合内容,并返回新的数组
斗地主案例