码迷,mamicode.com
首页 > 编程语言 > 详细

JavaSE_08_Collections常用功能

时间:2019-10-26 20:43:20      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:lis   har   需要   lan   code   tor   对象   行操作   方式   

1.1 常用功能

  • java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:

  • public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。

  • public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。

  • public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

  • public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序。

public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //添加多个元素
        Collections.addAll(list,"a","c","b","d");
        System.out.println(list);

        //打乱集合中元素的顺序
        Collections.shuffle(list);
        System.out.println(list);

        //sort 将集合中的元素按照默认的顺序排序  只能使用list集合或者实现了list接口
        Collections.sort(list);
        System.out.println(list);
    }

2.2 Comparator比较器

public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

sort()如何进行排序呢?

在JAVA中提供了两种比较实现的方式,一种是比较死板的采用java.lang.Comparable接口去实现,一种是灵活的当我需要做排序的时候在去选择的java.util.Comparator接口完成。

public int compare(String o1, String o2):比较其两个参数的顺序。

两个对象比较的结果有三种:大于,等于,小于。

如果要按照升序排序, 则o1 小于o2,返回(负数),相等返回0,01大于02返回(正数)

如果要按照降序排序 则o1 小于o2,返回(正数),相等返回0,01大于02返回(负数)

public class CollectionsDemo3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("cba");
        list.add("aba");
        list.add("sba");
        list.add("nba");
        //排序方法  按照第一个单词的降序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.charAt(0) - o1.charAt(0);
            }
        });
        System.out.println(list);
    }
}

2.3 练习

创建一个人类,存储到ArrayList集合中完成指定排序操作。

第一种:将人类实现Comparable<Person>接口,并重写compareTo()方法

@Override
    public int compareTo(Person o) {
        //自定义比较规则 按年龄shengx比较
        return this.getAge()-o.getAge();
    }

第二种:使用内部类方式 new Comparator()接口,重写compare方法

Lambda表达式简写:Collections.sort(people, (o1,o2) -> o1.getAge()-o2.getAge() );

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

        ArrayList<Person> people = new ArrayList<>();
        Person p1 = new Person("hdh", 20);
        Person p2 = new Person("xj", 19);
        Collections.addAll(people,p1,p2);
        Collections.sort(people, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {

                return o1.getAge()-o2.getAge();
            }
        });
        System.out.println(people);

    }
}

 

JavaSE_08_Collections常用功能

标签:lis   har   需要   lan   code   tor   对象   行操作   方式   

原文地址:https://www.cnblogs.com/asndxj/p/11745215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!