Java语言学习总结 扩展篇 Collections集合工具类的方法使用

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

	}

}

输出结果:
输出结果

发布了72 篇原创文章 · 获赞 3 · 访问量 6185

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104145335