Collections集合工具类
addAll()方法
直接看代码:
import java.util.ArrayList;
import java.util.Collections;
public class CollectionsClass {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
/**
* 用add()往集合中添加元素时,一次只能添加一个
* 当需要一次性添加批量元素时,会非常麻烦
* 这里使用addAll()添加元素
*/
Collections.addAll(list, "a","b","c","d");
System.out.println(list);
//shuffle()方法可以打乱集合的顺序
Collections.shuffle(list);
System.out.println(list);
}
}
输出结果:
sort()方法
public static void sort(List list) 将集合中元素按照默认规则顺序,默认为升序
实例代码:
import java.util.ArrayList;
import java.util.Collections;
public class SortClass {
public static void main(String[] args) {
ArrayList<Integer> list01 = new ArrayList<>();
Collections.addAll(list01,1,2,5,8,9,4,5,66,23,32,101,99);
System.out.println(list01);
Collections.sort(list01);// 默认是升序
System.out.println(list01);
System.out.println("========================");
ArrayList<String> list02 = new ArrayList<>();
Collections.addAll(list02, "e","k","c","d","a");
System.out.println(list02);
Collections.sort(list02);
System.out.println(list02);
}
}
输出结果;
重写sort()方法
在对自定义的类型对象进行排序时,需要从写Comparable中的CompareTo()方法。
实例代码:
建立一个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;
}
@Override
public String toString() {
return "Person [name=" + name + ", 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 int compareTo(Person o) {
//自定义排序规则,按照年龄的升降序排列
//return this.getAge()-o.getAge(); // 升序排列
return o.getAge() - this.getAge(); //降序排列
}
}
测试代码如下:
ArrayList<Person> list03 = new ArrayList<>();
list03.add(new Person("张三",18));
list03.add(new Person("张五",14));
list03.add(new Person("张七",20));
list03.add(new Person("李三",30));
Collections.sort(list03);
for(Person i :list03) {
System.out.println(i);
}
输出结果如下:
Comparator中的sort方法
Comparator和Comparable的区别
Comparable 是自己和别人比较,本书需要实现Compatable接口,重写其中的compareTo方法。
Comparator
示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ComparaTorClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(3);
list01.add(2);
System.out.println(list01);//[1, 3, 2]
Collections.sort(list01, new Comparator<Integer>() {
//重写比较的规则
@Override
public int compare(Integer o1, Integer o2){
//return o1-o2;//升序.
return o2-o1;//降序
}
});
System.out.println(list01);
}
}
输出结果: