1,Map:
Map集合:该集合存储键值对, 一对一对往里存,
而且要保证键的唯一性。
1,添加:
put(K key,V value)
putAll(Map<? extends K,?extends V>m )
2,删除:
chear()
remove(Object key)
3,判断:
containsValue(Object value)
containsKey(Object key)
isEmpty()
4,获取:
get(Object key)
size()
values()
entrySet()
keySet()
Map:
Hashtable:
底层是哈希表数据结构,不可以存入null键null值,
该集合是线程同步的,jdk1.0.效率低。
HashMap:
底层是哈希表数据结构,允许使用null键null值,
该集合是不同步的,jdk1.2.效率高。
TreeMap:
底层是二叉树数据结构,线程不同步,
可以用于给Map集合中的键进行排序。
和Set很想,
其实大家,Set底层就是使用了Map集合。
添加元素:
如果出现添加时,相同的键,
那么后添加的值会覆盖原有键对应值,
并put方法会返回被覆盖的值。
2.Arrays:
用于操作数组的工具类。
里面都是静态方法。
Arrays.asList():将数组变成list集合。
把数组变成list集合有什么好处:
可以使用集合的思想和方法来操作数组中的元素。
注意:
将数组变成集合,不可以使用集合的增删方法。
因为数组的长度是固定的。
可是使用这些方法:
contains,get,indexof(),subList().
如果你增删,那么会发生UnsupportedPperationException异常。
如果数组中的元素都是对象,那么变成集合时,
数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,
那么会将该数组作为集合中的元素存在。
将集合变数组:
Collection接口中的toArray方法。
指定类型的数组到底要定义多长呢:
当指定类型的数组长度小于了集合的size,
那么该方法内部会创建一个新的数组,长度为集合的size。
当指定类型的数组长度大于了集合的size,
就不会新创建了数组,而是使用传递进来的数组。
所以创建一个刚刚好的数组最优。
为什么要将集合变数组:
为了限定对元素的操作,不需要进行增删了。
Map集合:该集合存储键值对, 一对一对往里存,
而且要保证键的唯一性。
1,添加:
put(K key,V value)
putAll(Map<? extends K,?extends V>m )
2,删除:
chear()
remove(Object key)
3,判断:
containsValue(Object value)
containsKey(Object key)
isEmpty()
4,获取:
get(Object key)
size()
values()
entrySet()
keySet()
Map:
Hashtable:
底层是哈希表数据结构,不可以存入null键null值,
该集合是线程同步的,jdk1.0.效率低。
HashMap:
底层是哈希表数据结构,允许使用null键null值,
该集合是不同步的,jdk1.2.效率高。
TreeMap:
底层是二叉树数据结构,线程不同步,
可以用于给Map集合中的键进行排序。
和Set很想,
其实大家,Set底层就是使用了Map集合。
添加元素:
如果出现添加时,相同的键,
那么后添加的值会覆盖原有键对应值,
并put方法会返回被覆盖的值。
2.Arrays:
用于操作数组的工具类。
里面都是静态方法。
Arrays.asList():将数组变成list集合。
把数组变成list集合有什么好处:
可以使用集合的思想和方法来操作数组中的元素。
注意:
将数组变成集合,不可以使用集合的增删方法。
因为数组的长度是固定的。
可是使用这些方法:
contains,get,indexof(),subList().
如果你增删,那么会发生UnsupportedPperationException异常。
如果数组中的元素都是对象,那么变成集合时,
数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,
那么会将该数组作为集合中的元素存在。
将集合变数组:
Collection接口中的toArray方法。
指定类型的数组到底要定义多长呢:
当指定类型的数组长度小于了集合的size,
那么该方法内部会创建一个新的数组,长度为集合的size。
当指定类型的数组长度大于了集合的size,
就不会新创建了数组,而是使用传递进来的数组。
所以创建一个刚刚好的数组最优。
为什么要将集合变数组:
为了限定对元素的操作,不需要进行增删了。