271/272Collections集合工具类的方法---addAll&shuffle和集合工具类的方法——sort(List)

Collections集合工具类的方法---addAll&shuffle

2.1常用功能
java.utils.collections是集合工具类,用来对集合进行操作。部分方法如下:
  public static 〈T> boolean addAI1(collection<T> c,T... elements)`:往集合中添加一些元素。

  public static void shuffle(List<?> list)打乱顺序:打乱集合顺序。

  public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

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

复制代码
 
public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();//往集合中添加多个元素
        Collections.addAll(list, "a" , "b","c" , "d" ,"e");
        System.out.println(list);
        Collections.shuffle(list) ;
        System.out.println(list);
    }
 
复制代码
复制代码
 
public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();//往集合中添加多个元素

            list.add("a");
            list.add("b");
            list.add("c");
            list.add("d");
            list.add("e");

        System.out.println(list);
        Collections.shuffle(list) ;
        System.out.println(list);
    }
 
复制代码

 

Collections集合工具类的方法---sort(List)

 

注意:
  sort(List<T> List)使用前提   

  被排序的集合里边存储的元素,必须实现comparable,重写接口中的方法compareTo定义排序的规则

ComparabLe接口的排序规则:

自己(this)-参数:升序

 

Person

复制代码
 
public class Person implements Comparable<Person>{
    private String name;
    private int age;

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

    public Person() {
    }

    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 "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    @Override
    public int compareTo(Person o){
        //return  0。认为元素时相同的
        //自定义比较的规则,比较两个人的年龄
        return this.getAge()-o.getAge();
    }
}
 
复制代码
复制代码
 
 public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(3);
        list1.add(2);
        System.out.println(list1);
        //public static <T> void sort(List<T> list):将集合中元素按照黑认规则排序。
        Collections.sort (list1);//默认是升序
        System.out.println(list1);//[1,2,3]
        ArrayList<String> list02 = new ArrayList<>();
        list02.add( "aa" );
        list02.add("bb");
        list02.add("cc");

        System.out.println(list02);
        ArrayList<Person> list03 = new ArrayList<>();
        list03.add( new Person("乐迪", 18));
        list03.add(new Person("梁志超",20));
        list03.add(new Person("卢本伟", 15));
        System.out.println(list03);
        Collections.sort(list03);
    }
 
复制代码

 

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);

}
复制代码

 

posted @   ja不会va  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示