【java学习—十】操作集合的工具类Collections(8)

这篇具有很好参考价值的文章主要介绍了【java学习—十】操作集合的工具类Collections(8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1. 操作集合的工具类: Collections

    Collections 是一个操作 SetListMap 等集合的工具类
    Collections 中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。
    
排序操作:
    • reverse(List) :反转 List 中元素的顺序
    • shuffle(List) :对 List 集合元素进行随机排序
    • sort(List) :根据元素的自然顺序对指定 List 集合元素按升序排序
    • sort(List, Comparator) :根据指定的 Comparator 产生的顺序对 List集合元素进行排序
    • swap(List, int , int) :将指定 list 集合中的 i 处元素和 j 处元素进行交换

2. 应用

举例1:

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		
		list.add("b");
		list.add("cd");
		list.add("ca");
		list.add("a");
		list.add("1");
		
		System.out.println(list);
		Collections.reverse(list);//反转List中元素的顺序
		System.out.println(list);
		
		Collections.shuffle(list);//对List集合进行随机排序
		System.out.println(list);
		
		Collections.sort(list);//list集合以字典升序排列
		System.out.println(list);
		
	}
}

运行结果:

【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

举例2:

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {

		Student s1 = new Student(14, "张三");
		Student s2 = new Student(12, "李四");
		Student s3 = new Student(13, "王五");
		Student s4 = new Student(11, "杨六");
		
		List<Student> stus = new ArrayList<Student>();
		stus.add(s1);
		stus.add(s2);
		stus.add(s3);
		stus.add(s4);
		
		for(Student stu : stus) {
			System.out.println(stu.name + "," + stu.age);
		}
		
		System.out.println("----------------------------------");
		//根据元素的自然顺序对指定 List 集合元素按升序排序
		Collections.sort(stus, new Student());
		for(Student stu : stus) {
			System.out.println(stu.name + "," + stu.age);
		}
	
	}

}

class Student implements Comparator<Student>{
	int age;
	String name;
	
	public Student() {
		
	}
	
	public Student(int age, String nmae) {
		this.age = age;
		this.name = nmae;
	}
	
	@Override
	public int compare(Student o1, Student o2) {//根据年龄升序排列对象
		if(o1.age > o2.age) {
			return 1;
		}else if(o1.age < o2.age) {
			return -1;
		}else {
			return 0;
		}
	}
	
}

运行结果:
【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

举例3:将指定 list 集合中的 i 处元素和 j 处元素进行交换

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		
		list.add("b");
		list.add("cd");
		list.add("ca");
		list.add("a");
		list.add("1");
		
		System.out.println(list);
		Collections.reverse(list);//反转List中元素的顺序
		System.out.println(list);
		
		Collections.shuffle(list);//对List集合进行随机排序
		System.out.println(list);
		
		Collections.sort(list);//list集合以字典升序排列
		System.out.println(list);
		
		Collections.swap(list, 0, 4);//将指定 list 集合中的 i 处元素和 j 处元素进行交换
		System.out.println(list);	
		
	}

}

运行结果:

【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

3. 查找、替换

3.1. max 与 min

    Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
    Object min(Collection):根据元素的自然顺序,返回给定集合中的最小元素

举例:

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		
		list.add("b");
		list.add("cd");
		list.add("ca");
		list.add("a");
		list.add("1");
		
		System.out.println(list);
		Collections.reverse(list);//反转List中元素的顺序
		System.out.println(list);
		Collections.shuffle(list);//对List集合进行随机排序
		System.out.println(list);
		Collections.sort(list);//list集合以字典升序排列
		System.out.println(list);
		
		System.out.println(Collections.max(list));//根据元素的自然顺序,返回给定集合中的最大元素
		System.out.println(Collections.min(list));//根据元素的自然顺序,返回给定集合中的最小元素
	
	}

}

运行结果:
【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

3.2. 根据Comparator返回max(min)

    Object max(Collection , Comparator) :根据 Comparator 指定的顺序,返回给定集合中的最大元素
    Object min(Collection , Comparator):根据 Comparator 指定的顺序,返回给定集合中的最小元素

举例:

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {

		Student s1 = new Student(14, "张三");
		Student s2 = new Student(12, "李四");
		Student s3 = new Student(13, "王五");
		Student s4 = new Student(11, "杨六");
		
		List<Student> stus = new ArrayList<Student>();
		stus.add(s1);
		stus.add(s2);
		stus.add(s3);
		stus.add(s4);
		
		//根据 Comparator 指定的顺序,返回给定集合中的最大元素
		Student s = Collections.max(stus, new Student());
		System.out.println(s.name + "," + s.age);
		
		//根据 Comparator 指定的顺序,返回给定集合中的最小元素
		Student ss = Collections.min(stus, new Student());
		System.out.println(ss.name + "," + ss.age);

	}
}

class Student implements Comparator<Student>{
	int age;
	String name;
	
	public Student() {
		
	}
	
	public Student(int age, String nmae) {
		this.age = age;
		this.name = nmae;
	}
	
	@Override
	public int compare(Student o1, Student o2) {//根据年龄升序排列对象
		if(o1.age > o2.age) {
			return 1;
		}else if(o1.age < o2.age) {
			return -1;
		}else {
			return 0;
		}
	}
}

运行结果:
【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

3.3. frequency 与 replaceAll

    int frequency(Collection , Object) :返回指定集合中指定元素的出现次数
    boolean replaceAll(List list , Object oldVal , Object newVal) :使用新值替换 List 对象的所有旧值

package day10;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test7 {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		
		list.add("b");
		list.add("cd");
		list.add("ca");
		list.add("a");
		list.add("1");
		list.add("a");
		
		//返回指定集合中指定元素的出现次数
		System.out.println(Collections.frequency(list, "a"));
		System.out.println(Collections.frequency(list, "b"));
		System.out.println(Collections.frequency(list, "x"));
		
		//使用新值替换List对象的所有旧值
		Collections.replaceAll(list, "a", "aa");
		System.out.println(list);
	
	}
}

运行结果:
【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python

4. 同步控制

这部分了解即可

    Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题

【java学习—十】操作集合的工具类Collections(8),java学习,java,学习,python文章来源地址https://www.toymoban.com/news/detail-736731.html

到了这里,关于【java学习—十】操作集合的工具类Collections(8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 21 新特性 】顺序集合(Sequenced Collections)

    Java 21 中增加了一种新的集合类型:顺序集合(Sequenced Collections)。 要介绍顺序集合,就首先要说明一下出现顺序(encounter order)。出现顺序指的是在遍历一个集合时,集合中元素的出现顺序。 有些集合类型,有确定的出现顺序,比如  List 。不管遍历多少次这样的集合,其

    2024年02月05日
    浏览(39)
  • Java 21新特性:Sequenced Collections(有序集合)

    在JDK 21中,Sequenced Collections的引入带来了新的接口和方法来简化集合处理。此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。 下面一起通过本文来了解一下不同集合处理示例。 Sequenced Collections引入了三个新接口: SequencedColle

    2024年02月08日
    浏览(51)
  • 第12章_集合框架(Collection接口,Iterator接口,List,Set,Map,Collections工具类)

    1.1 生活中的容器 1.2 数组的特点与弊端 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。 另一方面,使用数组存储对象方面具有 一些弊端 ,而Java 集合就像一种容器,可以 动态地 把多个对象的引用放入容器中。 数

    2024年01月25日
    浏览(45)
  • JavaSE学习进阶day06_03 Collections类和Map集合

    java.utils.Collections 是集合工具类,用来对集合进行操作。 常用方法如下: public static void shuffle(List? list) :打乱集合顺序。 public static T void sort(ListT list) :将集合中元素按照默认规则排序。 public static T void sort(ListT list,Comparator? super T ) :将集合中元素按照指定规则排序。 代码演示

    2023年04月26日
    浏览(40)
  • 【JAVA学习笔记】 56 - 开发中如何选择集合实现类,以及Collection工具类

    https://github.com/yinhai1114/Java_Learning_Code/blob/main/IDEA_Chapter14/src/com/yinhai/Collections_.java 目录 项目代码 Collections工具类 一、Collections工具类介绍 1.排序操作: (均为static方法) 2.查找、替换 在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行 选择

    2024年02月06日
    浏览(42)
  • Java Collections类排序学习

    jdk自带排序学习,比如我们写一个排序代码 来看一下sort的实现 继续跟进 如果没有自定义排序就执行默认排序 legacyMergeSort 归并排序默认关闭的,重点关注 ComparableTimSort.sort 如果小于 private static final int MIN_MERGE = 32;大小就进行折半插入排序,如果大于32进行 TimSort排序 Timsort是

    2024年01月23日
    浏览(58)
  • Java02-迭代器,数据结构,List,Set ,Map,Collections工具类

    目录 什么是遍历? 一、Collection集合的遍历方式 1.迭代器遍历 方法 流程 案例 2. foreach(增强for循环)遍历 案例 3.Lamdba表达式遍历 案例 二、数据结构 数据结构介绍 常见数据结构 栈(Stack) 队列(Queue) 链表(Link) 散列表(Hash Table) 树(Tree) List接口 ArraysList集合 Linked

    2024年02月14日
    浏览(52)
  • 第7章-第7节-Java中的TreeMap和HashTable以及collections工具类

    1、TreeMap: 1)、 概述 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的 2)、 特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 键允许为空值 元素有序(具体的排序规则有Comparable 或者 Comparator决定) 3)、 使用  2、HashTable: 1)、 概述 HashTable与Hash

    2024年01月23日
    浏览(51)
  • Collection集合体系(ArrayList,LinekdList,HashSet,LinkedHashSet,TreeSet,Collections)

    目录 一.Collection 二.List集合 三.ArrayList集合 四.LinkedList集合 五.Set集合              六.hashSet集合 七.LinkedHashSet集合 八.TreeSet集合 九.集合工具类Collections 集合体系概述         单列集合:Collection代表单列集合,每个元素(数据)只包含一个值。         双列集合:

    2024年02月21日
    浏览(41)
  • Collections.disjoint方法,优雅进行两个集合有没有相同的元素判断

    比较 两个集合 中 有没有相同的元素 java.util. Collections.disjoint (Collection? c1, Collection? c2) 以下是结果:

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包