<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的
其他的也是类似的查看方法
相关推荐
Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。...
总结起来,`Collections.sort()`是Java中对List进行排序的标准工具,它支持自然排序和自定义排序。了解其工作原理和优化技巧,可以帮助我们在编程实践中更高效地处理数据。通过阅读和理解`Collections.sort()`的源码...
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。
总结起来,实现Java中按数字、字母和汉字顺序的排序,主要步骤包括: 1. 创建自定义的`Comparator`类。 2. 使用`PinyinHelper`将中文字符转换为拼音。 3. 分类处理数字、字母和汉字,根据它们的特性进行比较。 4. ...
本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...
首先,我们要明白在Java中,默认的字符串排序是基于Unicode编码的,这可能会导致中文字符与英文字符混合排序时出现问题。例如,英文字符通常会排在中文字符前面,因为它们的Unicode值更低。为了解决这个问题,我们...
在排序过程中,我们假设前n-1个元素已经排好序,然后将第n个元素插入到已排序的部分,保持排序不变。这个过程不断重复,直到所有元素都被正确地插入到合适的位置。 Java实现如下: ```java public class ...
总结来说,Java中的List可以通过自定义Comparator或者利用泛型和方法引用来实现对象多属性的动态排序。这种技术在处理复杂数据结构时非常有用,使得代码更加简洁且易于维护。通过学习和实践这部分内容,开发者可以...
本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的排序算法——冒泡排序开始。冒泡排序是一种直观的排序方法,通过重复遍历数组,每次比较相邻两个元素并根据需要交换它们的位置,使得...
以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...
数据结构中排序算法的java代码实现
本文将全面解析Java中的各种排序算法,帮助你理解并掌握它们的核心概念、实现方式以及适用场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过不断交换相邻的逆序元素来逐步排序。其时间...
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...
【正文】 ...总的来说,本文涵盖了Java中主要的排序算法,通过实例代码和性能分析,有助于读者系统地学习和掌握排序算法。无论是初学者还是经验丰富的开发者,都能从中受益,提升自己的编程能力。
提供插入排序,选择排序,冒泡排序三种排序方法,对数据进行排序,并可以在图形界面演示排序过程。 执行语句:java sort <输入方式> <图形界面/非图形...java sort 3 2 //随机生成1000个数据并在图形界面中演示排序过程
下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这在Java 8引入的流(Stream)API中得到了很好的支持。`Collectors.groupingBy`方法允许我们将...
- **文件标签**:虽然在标签中出现了文件扩展名的误写,但可以推测该文件主要关注的是Java排序相关的知识。 ### 二、Java排序算法介绍 #### 1. 直接插入排序(Direct Insertion Sort) - **定义**:直接插入排序...
在Java中,冒泡排序通常使用两层循环实现。 2. 插入排序(Insertion Sort): 插入排序通过创建一个有序的子列表,然后将未排序的元素逐个插入到正确的位置来实现。Java实现中,可以使用一个临时变量存储当前元素,...
在Java中,我们可以通过遍历数组,将每个元素与前面已排序的部分进行比较,找到合适的位置插入,从而达到排序的目的。 3. **堆排序(Heap Sort)**: 堆排序利用了二叉堆的特性,将待排序的序列构造成一个大顶堆或...