天天看点

双列集合

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);

如果参数数组足够放下集合中所有元素,则将集合中的元素添加到参数数组并将参数数组作为返回值

如果参数数组无法放下集合中的所有元素,则参数数组只起到确定类型作用,方法逻辑会自动创建新数组存储集合内容,并返回新的数组

双列集合

斗地主案例

双列集合
双列集合
双列集合

继续阅读