456lives.com - 舒适慢生活

专享优惠券-淘宝天猫最热门优惠券清单 阿里旅行-前往世界的尽头 【聚名品】奢品潮流风向标 省钱优惠圈 精品女装 靓丽全场
文字广告45元/月 聚划算专享优惠 文字广告45元/月 文字广告45元/月 文字广告45元/月
京东居家生活 日用精品 抽免单+抽红包,福利抽不停 天猫超市-今日疯抢 多款好货任你抢 全球精选-享品质生活 广告合作客服QQ:253482037

Collections实现List简单排序的用法

时间:2017-07-15 17:42:46 | 作者:本站编辑 | 来源:网络 | 查看:128 | 评论:0

摘要: java.util.Collections类包含很多有用的方法,可以使程序员的工作变得更加容易,但是这些方法通常都没有被充分地利用。JavaDoc给出Collections类最完整的描述。慢生活的小编就教大家如何使用Collections实现排序。

        java.util.Collections类包含很多有用的方法,可以使程序员的工作变得更加容易,但是这些方法通常都没有被充分地利用。JavaDoc给出Collections类最完整的描述。慢生活的小编就教大家如何使用Collections实现排序。

        Collections非常强大,但是很多变:使用它们要小心,滥用它们会带来风险。

        1.默认情况下(sort)

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

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
        Collections.sort(list);
        System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:中国银行,交通银行,农业银行,工商银行,建设银行,招商银行,邮政储蓄


        2.按汉字拼音升序

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
    Collections.sort(list, Collator.getInstance(java.util.Locale.CHINA));
    System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:工商银行,建设银行,交通银行,农业银行,邮政储蓄,招商银行,中国银行


        3.逆序排序(reverse)

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
    Collections.sort(list, Collator.getInstance(java.util.Locale.CHINA));
    Collections.reverse(list); // 反转整个数组
    System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:中国银行,招商银行,邮政储蓄,农业银行,交通银行,建设银行,工商银行


        4.混排--重新洗牌(Shuffling)

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
    Collections.shuffle(list);// 随机排序
    System.out.println(StringUtils.join(list.toArray(), ","));
    Collections.shuffle(list);// 随机排序
    System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:

        交通银行,招商银行,邮政储蓄,中国银行,工商银行,建设银行,农业银行

        农业银行,交通银行,工商银行,建设银行,邮政储蓄,招商银行,中国银行


        5.循环移动(rotate)

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
    Collections.rotate(list, 1); // 向右移动1
    System.out.println(StringUtils.join(list.toArray(), ","));
    Collections.rotate(list, -2); // 向左移动2
    System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:

        邮政储蓄,工商银行,建设银行,中国银行,交通银行,农业银行,招商银行

        建设银行,中国银行,交通银行,农业银行,招商银行,邮政储蓄,工商银行


        6.换位(swap)

public static void main(String[] args) {
    List<String> list = Arrays.asList(
            "工商银行", "建设银行", "中国银行", "交通银行", "农业银行", "招商银行", "邮政储蓄");
    Collections.swap(list, 0, 1); // 向右移动1
    System.out.println(StringUtils.join(list.toArray(), ","));
}

        运行结果:建设银行,工商银行,中国银行,交通银行,农业银行,招商银行,邮政储蓄

  • 0
    惊讶
  • 0
    欠揍
  • 0
    支持
  • 0
    很棒
  • 0
    愤怒
  • 0
    搞笑
  • 0
    恶心
  • 0
    不解
此篇文章已有0人参与评论

请发表评论

热门评论

精选资讯


免责申明:本站部份内容来源自互联网,如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间给予改正和删除。

Powered by 舒适慢生活 Copyright © 2013-2023, All Rights Reserved京ICP备13024987号-4京公网安备11010602030047号京公网安备11010602030047号

工作时间:7x24小时联系QQ:253482037服务热线:188****4459活动洽谈:188****4459联系邮箱:253482037@qq.com