java数据结构19_Collections工具类

java.util.Collections 类提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。

  • 排序(Sort)

使用sort方法可以根据元素的自然顺序对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的。

【示例】Sort升序排序

class Person implements Comparable<Person> {
	String name;
	int age;
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	@Override
	public int compareTo(Person o) {
		return this.age - o.age;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
}
public class SortDemo {
	public static void main(String[] args) {
		ArrayList<Person> list = new ArrayList<Person>();
		list.add(new Person("张三", 19));
		list.add(new Person("李四", 40));
		list.add(new Person("王五", 34));
		list.add(new Person("赵六", 23));
		list.add(new Person("罗七", 33));
		// 对元素进行排序
		Collections.sort(list);
		Iterator<Person> iter = list.iterator();
		while(iter.hasNext()) {
			System.out.println(iter.next());
		}
	}
}
  • 混排(Shuffling)

混排算法所做的正好与 sort 相反,它打乱在一个 List 中可能有的任何排列的踪迹,也是就是对元素进行随机排列。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List .另外,在生成测试案例时,它也是十分有用的。

【示例】Shuffling随机排序

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 随机排序
Collections.shuffle(list);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
	System.out.println(iter.next());
}
  • 反转(Reverse)

使用Reverse方法可以根据元素的自然顺序 对指定列表按降序进行排序。

【示例】Reverse倒序排序

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 反序排序
Collections.reverse(list);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
	System.out.println(iter.next());
}
  • 替换所有的元素(Fill)

使用指定元素替换指定列表中的所有元素。

【示例】Fill替换所有的元素

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
// 反序排序
Collections.fill(list, 222);
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
	System.out.println(iter.next());
}

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了35 篇原创文章 · 获赞 0 · 访问量 349

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104562262