Collections集合类使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collections集合类使用方法相关的知识,希望对你有一定的参考价值。

1、

package com.fish.util;
import java.util.ArrayList;
import java.util.Collections;
/*
 集合的工具类(Collections)
 说出Collection与Collections的区别?
 1、 Collection是一个单例集合的根接口,Collections是操作对象的一个工具类。
 
 Collections:常见方法:
 
 1,对list进行二分查找:前提该集合一定要有序。
 int binarySearch(list,key); //必须根据元素自然顺序对列表进行升级排序
 int binarySearch(list,key,Comparator); //要求list 集合中的元素都是Comparable 的子类。
 
 2,对list集合进行排序。
 sort(list); //对list进行排序,其实使用的事list容器中的对象的compareTo方法
 sort(list,comaprator); //按照指定比较器进行排序
 
 3,对集合取最大值或者最小值。
 max(Collection)
 max(Collection,comparator)
 min(Collection)
 min(Collection,comparator)
 
 4,对list集合进行反转。
 reverse(list);
 
 5,可以将不同步的集合变成同步的集合。
 Set synchronizedSet(Set<T> s)
 Map synchronizedMap(Map<K,V> m)
 List synchronizedList(List<T> list)
 */
 
 
public class Demo1 {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(12);
        list.add(2);
        list.add(19);
        
        // 排序
        Collections.sort(list);
        System.out.println("元素所在的索引值是:" + Collections.binarySearch(list, 12));
        System.out.println("最大值:" + Collections.max(list));
        System.out.println("最小值:" + Collections.min(list));
        Collections.reverse(list); //翻转不需要用到排序
        
        System.out.println("集合的元素:" + list);
        
        list=(ArrayList<Integer>) Collections.synchronizedList(list);//将list转换为线程安全的方法
    }
}
package com.fish.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
class Person{
    String name;
    int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    @Override
    public String toString() {
        return "{姓名:"+this.name+" 年龄:"+this.age+"}";
    }
}

class AgeComparator implements Comparator<Person>{
    @Override
    public int compare(Person o1, Person o2) {
        return o1.age-o2.age;
    }
}

    public class Demo2 {
        public static void main(String[] args) {
            ArrayList<Person> list = new ArrayList<Person>();
            list.add(new Person("狗娃",12));
            list.add(new Person("张三",22));
            list.add(new Person("李四",2));
            
            Collections.sort(list,new AgeComparator());
            
            System.out.println("元素所在的索引值是:"+Collections.binarySearch(list, new Person("张三",22), new AgeComparator()));
            
            System.out.println("最大值:"+Collections.max(list,new AgeComparator()));
            System.out.println("最小值:"+Collections.min(list,new AgeComparator()));
            
            Collections.reverse(list); //翻转不需要用到排序,所以不需要传入比较器
            System.out.println("集合的元素:"+list);
        }
}




本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于Collections集合类使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Java集合框架--Collections工具类的使用 & Java集合框架总结

Java集合框架:Collections工具类

Java难点 | Collections集合工具类

Java源码分析集合框架-Collections工具类-Arrays工具类

Java源码分析集合框架-Collections工具类-Arrays工具类

Java集合之Collections 剖析