集合使用+ Comparator使用方法

Map集合

Map常用的有两种集合,一种是HashMap,一种是TreeMap;

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();
                }
经验分享 程序员 微信小程序 职场和发展