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);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix