Map: 双列集合,一次存一对,键值对。要保证键的唯一性。
键相同,会出现值覆盖。
获取方法:
map集合没有迭代器,但是可以将map集合转成set集合,再使用迭代器。
map.keySet();
map.entrySet();
map.values(): //只能获取值
Collection values=map.values();
Map.Entry: 其实就是一个Map接口中的内部接口 // 静态的接口
Set<<Map.Entry<String,String>> entrySet=map.entrySet();\
Map.Entry<String,String> me =it.next();
String value = me .getValue ;
Strin key=me.getKey();
****map的子类**
Hashtable:哈希表,是同步的,不允许null键,null值.
HashMap:哈希表,是不同步的,允许null键,null值。
TreeMap:二叉树,不同步的,可以对map集合中的键值进行排序。
**********工具类 collections **********************
Collections: 定义的都是操作Collection的静态方法。
1,对list排序
sort(list);
// 排序方法上泛型的由来
class Student implements Comparable<Person>
{
public int compareTo(Person p)
{ }
}
public static <T extends Comparable<? super T>> void sort(List<T> list)
{ }
public static void sort(List<Student> list)
{ stu1.compareTo(stu2) }
2,逆序
reversOrder
3, max min
4, 二分查找
5,将非同步集合合转成同步集合
同步集合 synchronized集合(非同步集合);
coll1=Collections.synchronizedCollection(coll);
************Arrays***********
Arrays:用来操作数组的工具类,方法都是静态的
数组转成集合:
数组转成list集合,就是为了使用集合的方法操作数组中的元素
不能使用集合中的增删方法,数组不能改变长度。
List<String> list = Arrays.asList(strs);
如果数组中都是引用数据类型,转成集合中时,数组元素直接作为集合元素。
如果数组中都是基本数据类型,会将数组对象作为集合中的元素。
集合转成数组: toArray
传入的数组长度,如果小于集合长度,方法中会创建一个新的长度和集合长度一致的数组。
如果传入的数组长度大于等于集合长度,会使用传入的数组。所以建议长度定义为集合的size()
为什么把集合转成数组:
就是为了限定对元素的操作,比如增删。
可变参数:
可变参数需要注意,只能定义在参数列表的最后
静态导入:
import static java.util.Collections.*;
sort(list);
简写