Collections集合工具类的方法sort(list,Comparator)和Map集合概述

Collections集合工具类的方法sort(list,Comparator)

java.utils.collections是集合工具类,用来对集合进行操作。部分方法如下:

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

Comparator和Comparable的区别

  comparable:自己(this)和别人(参数)比较,自己需要实现comparable接口,重写比较的规则compareTo方法

  comparator:相当于找一个第三方的裁判,比较两个

 

Person

复制代码
public class student{
    private String name;
    private int age;

    public student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public student() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

复制代码
public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add( 1);
        list1.add( 3);
        list1.add(2);
        System.out.println(list1);
        Collections.sort(list1,new Comparator<Integer>() {
            //重写比较的规则
            @Override
            public int compare( Integer o1,Integer o2) {
                return o2-o1;//降序
            }
        });
        System.out.println(list1);
        ArrayList<student> list02 = new ArrayList<>();
        list02.add( new student("虎二", 18));
        list02.add(new student( "莉莉安",20));
        list02.add(new student("李青",17));
        list02.add(new student( "巴德", 18));

        Collections.sort(list02, new Comparator<student>() {
            @Override
            public int compare(student o1, student o2) {
               int i = o1.getAge()-o2.getAge();
               if (i==0){
                   i = o1.getName().charAt(0)-o2.getName().charAt(0);
               }
               return i;
            }
        });
        System.out.println( list02) ;
    }
复制代码

复制代码

 

Person

复制代码

public class person implements Comparable<person>{
private String name;
private int age;

public person() {
}

public person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}


@Override
public boolean equals(Object o) {
System.out.println(getClass());//通过反射获取当前类的类型,即person
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
person person = (person) o;
return age == person.age &&
Objects.equals(name, person.name);//使用Objects中的equals方法,可以避免空指针异常
}

@Override
public int hashCode() {
return Objects.hash(name, age);
}

@Override
public String toString() {
return "person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}

@Override
public int compareTo(person o) {
return this.getAge()-o.getAge();//按年龄升序排序
}
}

复制代码
private static void show() {
        LinkedList<String> listStr = new LinkedList<>();
        listStr.add("1123");
        listStr.add("122");
 
        //方式1
        /*listStr.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });*/
 
        //方式2
        Collections.sort(listStr, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return Integer.parseInt(o1)-Integer.parseInt(o2);
            }
        });
        System.out.println(listStr);
 
    }
复制代码

 


 
复制代码

 

 

Map集合概述

java.utiL. Map<k, v>集合

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

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

    3.Map集合中的元素,key是不允许重复的, volue是可以重复的

    4 .Map集合中的元素,key和value是——对应

   

Map集合的完整格式:

{key1=value1 , key2=value2 , key3=value3 , …}

 

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。

  jJava提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map接口。

我们通过查看Map接口描述,发现wap.接口下的集合与collection接口下的集合,它们存储数据的形式不同

 

posted @   漁夫  阅读(91)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示