`

java sort 排序中的自然序排序总结

    博客分类:
  • java
 
阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>

 java 使用sort进行排序是非常容易的,可以支持默认自然循序排序和指定排序。

指定排序有两种方式

1、



 这个是list里面的类要继承Comparable 然后在里面实现public int compareTo(T o);就行

2 、

 是在方法里面用比较器来实现

 

java8里面会更简单的方式来使用

java8中添加了stream的概念

1、sorted() 默认使用自然序排序, 其中的元素必须实现Comparable 接口 
2、sorted(Comparator<? super T> comparator) :我们可以使用lambada 来创建一个Comparator 实例。可以按照升序或着降序来排序元素。 

使用起来会非常方便

 

 

public class Test {
    public static void main(String[] args) {
        List<TestClass> testClassList=new ArrayList<>();
        TestClass testClass=new TestClass();
        testClass.setDefualt(true);
        testClass.setName("name");
        testClassList.add(testClass);

        TestClass testClass1=new TestClass();
        testClass1.setDefualt(false);
        testClass1.setName("name1");
        testClassList.add(testClass1);


        TestClass testClass2=new TestClass();
        testClass2.setDefualt(true);
        testClass2.setName("name2");
        testClassList.add(testClass2);

        System.out.println(testClassList);
        System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");


        List<TestClass> testClassList1=testClassList.stream().sorted(Comparator.comparing(TestClass::getDefualt).reversed()).collect(Collectors.toList());
        System.out.println(testClassList1);


    }
    static class TestClass{
        private String name;
        private Boolean isDefualt;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Boolean getDefualt() {
            return isDefualt;
        }

        public void setDefualt(Boolean defualt) {
            isDefualt = defualt;
        }

        @Override
        public String toString() {
            return "TestClass{" +
                    "name='" + name + '\'' +
                    ", isDefualt=" + isDefualt +
                    '}';
        }
    }
}
 

 

上面不管是java8或者非java8的,都提到了自然序排序(有小到大)那到底怎么来java里的自然序排序是啥呢,其实是非常简单的,因为所有的排序都要有排序因子,而具体的排序算法都是通过public interface Comparable<T> 这个接口里的public int compareTo(T o)来做的



 这样我们就能看java提供的
八种基本类型都是怎么排序的了。

例如咱们看Boolean型的



看他的比较方法,就能看出来是true是大于false的

 

其他的也是类似的查看方法

  • 大小: 20.3 KB
  • 大小: 22.8 KB
  • 大小: 14.5 KB
  • 大小: 33.7 KB
分享到:
评论

相关推荐

    java sort排序算法实例完整代码

    Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。...

    java List 排序 Collections.sort

    总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...

    JAVA SortList 通用排序类

    JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。

    java中文排序,数字字母汉字排序

    总结起来,实现Java中按数字、字母和汉字顺序的排序,主要步骤包括: 1. 创建自定义的`Comparator`类。 2. 使用`PinyinHelper`将中文字符转换为拼音。 3. 分类处理数字、字母和汉字,根据它们的特性进行比较。 4. ...

    java 中文姓氏 排序

    本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...

    关于中文英文混合排序javaDemo

    首先,我们要明白在Java中,默认的字符串排序是基于Unicode编码的,这可能会导致中文字符与英文字符混合排序时出现问题。例如,英文字符通常会排在中文字符前面,因为它们的Unicode值更低。为了解决这个问题,我们...

    JAVA 8种排序介绍及实现

    在排序过程中,我们假设前n-1个元素已经排好序,然后将第n个元素插入到已排序的部分,保持排序不变。这个过程不断重复,直到所有元素都被正确地插入到合适的位置。 Java实现如下: ```java public class ...

    java List中对象多属性排序及各属性排序设置

    总结来说,Java中的List可以通过自定义Comparator或者利用泛型和方法引用来实现对象多属性的动态排序。这种技术在处理复杂数据结构时非常有用,使得代码更加简洁且易于维护。通过学习和实践这部分内容,开发者可以...

    java数组排序

    本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的排序算法——冒泡排序开始。冒泡排序是一种直观的排序方法,通过重复遍历数组,每次比较相邻两个元素并根据需要交换它们的位置,使得...

    java冒泡排序java冒泡排序集锦方法!

    以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...

    Sort.java(排序算法)

    数据结构中排序算法的java代码实现

    JAVA排序汇总 各种排序

    本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过不断交换相邻的逆序元素来逐步排序。其时间...

    java基础冒泡排序.ppt

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...

    JAVA经典排序汇总

    【正文】 ...总的来说,本文涵盖了Java中主要的排序算法,通过实例代码和性能分析,有助于读者系统地学习和掌握排序算法。无论是初学者还是经验丰富的开发者,都能从中受益,提升自己的编程能力。

    Java排序(带图形界面)

    提供插入排序,选择排序,冒泡排序三种排序方法,对数据进行排序,并可以在图形界面演示排序过程。 执行语句:java sort &lt;输入方式&gt; &lt;图形界面/非图形...java sort 3 2 //随机生成1000个数据并在图形界面中演示排序过程

    java 集合分组与排序

    下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这在Java 8引入的流(Stream)API中得到了很好的支持。`Collectors.groupingBy`方法允许我们将...

    java排序.txt

    - **文件标签**:虽然在标签中出现了文件扩展名的误写,但可以推测该文件主要关注的是Java排序相关的知识。 ### 二、Java排序算法介绍 #### 1. 直接插入排序(Direct Insertion Sort) - **定义**:直接插入排序...

    Java各种排序算法代码.zip

    在Java中,冒泡排序通常使用两层循环实现。 2. 插入排序(Insertion Sort): 插入排序通过创建一个有序的子列表,然后将未排序的元素逐个插入到正确的位置来实现。Java实现中,可以使用一个临时变量存储当前元素,...

    java版冒泡排序,插入排序,堆排序,快速排序,归并排序,希尔排序,桶排序

    在Java中,我们可以通过遍历数组,将每个元素与前面已排序的部分进行比较,找到合适的位置插入,从而达到排序的目的。 3. **堆排序(Heap Sort)**: 堆排序利用了二叉堆的特性,将待排序的序列构造成一个大顶堆或...

Global site tag (gtag.js) - Google Analytics