Map集合
Map常用的有两种集合,一种是HashMap,一种是TreeMap;
getOrDefault()方法的作用
Map.getOrDefault(Object key, V defaultValue)方法的作用是:当Map集合中有这个key时,就使用这个key值;如果没有就使用默认值defaultValue。
例子:params.put(String.valueOf©, (params.getOrDefault(String.valueOf©, 0) + 1));
hashmap:
主要的是hash算法,在map进行put的时候基本上都会经过一层hash算法;
hash算法主要是判断key值是否为零,如果不为零,那么h的值则为key.hashcode()由左至右进行移位;再根据算出的hash值对put的东西进行存放;
因为map无序,并且插入数据时也不是根据谁先进,谁就是在第一个;所以在面对需要顺序输出的时候,接收不能使用map集合,
TreeMap,主要是根据map中的key值进行排序的,不过在put值时,依旧也使用了hash算法
如果使用的集合需要进行排序,要采用链表、数组、或者是set,传入一行超过一个数据,有时可以采用对象的思想进行判断;
comparator使用方法:
Comparator</*传入的对象或者是类型*/Studnet> valueComparator=new Comparator</*传入的对象或者是类型*/Student>>() {
@Override
public int compare(/*传入的对象或者是类型*/Student o1, /*传入的对象或者是类型*/Student o2) {
//一般返回的是正数或者是负数,
//返回值为负数, 表示左边的数比右边的数小,左右的数不进行交换。
//返回值为0, 表示左边的数等于右边的数,左右的数不进行交换。
//返回值为1, 表示左边的数比右边的数大,左右的数进行交换。
return o1.getvalue()-o2.getvalue();
}