Collctions集合工具类的方法_sort(List,Comparator)与 Map集合概述

Collections

常用功能

public static <T> void sort(List<T> list , Comparator<? siper T> )':将集合中元素按照指定规则排序。

 

package Demo_Collecllectiionws;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/*
java.utils.collections是集合工具类,用来对集合进行操作。部分方法如下:
public static <T> void sort(List<T> list , Comparator<? siper T> )':将集合中元素按照指定规则排序。
    Comparator和comparabLe的区别
Comparable:自己(this )和别人(参数)比较,自己需要实现comparabLe接口,重写比较的规则compareTo方法comparator:相当于找—个第三方的裁判,比较两个
 */
public class Demo03Sort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        list01.add(1);
        list01.add(3);
        list01.add(2);

        System.out.println(list01);

        Collections.sort(list01, new Comparator<Integer>() {
            //重写比较的规则
            @Override
            public int compare(Integer o1, Integer o2) {
//                return o1-o2;//升序
                return o2-o1;//降序
            }
        });
        System.out.println(list01);

        ArrayList<Demo03_Student> students = new ArrayList<>();
        students.add(new Demo03_Student("马克波罗",6546546));
        students.add(new Demo03_Student("",6543456));
        students.add(new Demo03_Student("马超",698531));
        Collections.sort(students, new Comparator<Demo03_Student>() {
            @Override
            public int compare(Demo03_Student o1, Demo03_Student o2) {
                //按照年龄升序排序
               int result = o1.getAge()-o2.getAge();
               if (result==0){
                   result = o1.getName().charAt(0)-o2.getName().charAt(0);
               }
               return result;
            }
        });
        System.out.println(students);

    }
}

 

Map集合的特点
Map是一个无序,键值对的集合,键不可以重复,值可以重复,键重复则后者覆盖前者,Map集合没有继承Collection接口

无序:无序指插入的数据,读取的时候没有按顺序输出

Map集合的扩容方式
初始容量16,负载因子0.75,扩容增量1倍
Map集合底层是一个数组
数组的初始容量是16
当长度到数组负载因子0.75长度的时候(16*0.75=12也就是说在12这个长度的时候)
进行一次扩容,扩容后容量是原容量的两倍

当我们已经知道需要的容量大小的时候
就可以指定初始容量跟负载因子的大小
Map集合的特点

1.Map是一个双列集合,一个元素包含两个值(一个key,一个value)

2.Map集合中的元素,key和value的数据类型可以相同,也可以不同

3.Map中的元素,key不允许重复,value可以重复

4.Map里的key和value是一一对应的。

 

collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
collection中的集合称为单列集合,Map中的集合称为双列集合。
需要注意的是,Map 中的集合不能包含重复的键,值可以重复﹔每个键只能对应一个值。

 

 

 

java.util. Map<k, v>集合Map集合的特点∶
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,keyvaluie的数据类型可以相同,也可以不同
3.Aap集合中的元素,key是不允许重复的, value是可以重复的
4 .Map集合中的元素,keyvalue——对应
java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
DxI.8之前:数组+单回链表
DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合
linkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
posted @ 2022-07-06 20:35  zj勇敢飞,xx永相随  阅读(69)  评论(0编辑  收藏  举报