Collections
里面提供了大量操作集合的方法
一些方法举例:
public class Method01 { /* 1.public static <T> booolean addAll(Collections<T> c , T...elements) 往集合中添加一些元素; 2.public static void shuffle(List<?> list) 打乱集合顺序; */ public static void main(String[] args){ ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println(list);//[1, 2, 3] Collections.addAll(list,4,5,6,7); System.out.println(list);//[1, 2, 3, 4, 5, 6, 7] Collections.shuffle(list); //System.out.println(list);//[2, 5, 1, 6, 7, 4, 3] System.out.println(list);//[5, 6, 1, 7, 2, 3, 4] } }
public class Method02 { /* 1.public static <T> void sort(List<T> list); 按照默认规则升序排列 */ public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); Collections.addAll(list,4,8,1,6,9,2); Collections.sort(list); System.out.println(list);//[1, 2, 4, 6, 8, 9] //对自定义类型进行排序 ArrayList<Student> list2 = new ArrayList<>(); Collections.addAll(list2,new Student("小明",1), new Student("小红",2),new Student("小强",3), new Student("丽丽",3),new Student("大虎",5)); Collections.shuffle(list2); Collections.sort(list2); System.out.println(list2); } } class Student implements Comparable<Student>{ /* 想要对自定义的方法用Collections中的sort方法进行排序,需要实现Compareable接口, 并重写compareTo方法 */ @OVerride public int compareTo(Student o) { int result =this.age-o.getAge();//先按年龄升序排列 if(result==0){//如果年龄相同,按姓名首字母排列 result = this.getName().charAt(0)-o.getName().charAt(0); } return result; } } private String name; private int age; public Student() { } public Student(String name, int num) { this.name = name; this.age = num; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", num=" +age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int num) { this.age= num; }
public class Method3 { public static void main(String[] args) { /* public static <T> void sort(List<?> list , Compretor<? super T>) 将集合按照制定规则进行排序,指定规则在Compretor接口中定义(使用匿名内部类+匿名对象) */ ArrayList<Student> list2 = new ArrayList<>(); Collections.addAll(list2,new Student("小明",1), new Student("小红",2),new Student("小强",3), new Student("丽丽",3),new Student("大虎",5)); Collections.shuffle(list2); Collections.sort(list2, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getAge()-o2.getAge(); } }); Iterator it = list2.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
浙公网安备 33010602011771号