<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中按数字、字母和汉字顺序的排序,主要步骤包括: 1. 创建自定义的`Comparator`类。 2. 使用`PinyinHelper`将中文字符转换为拼音。 3. 分类处理数字、字母和汉字,根据它们的特性进行比较。 4. ...
本文将详细介绍如何在 Java 中对包含中文姓氏的对象列表或字符串列表进行排序。 #### 二、基本概念 1. **Collator 类**:这是 Java 中用于文本排序和检索的标准类。`Collator` 类提供了与语言环境相关的字符串排序...
本示例将详细介绍如何在Java中对Map进行字典序排序,并展示了一个参照微信官网算法的实现方法。 首先,字典序排序是指根据键(key)的自然顺序或自定义比较器进行排序。对于字符串,字典序排序通常是指按字母顺序...
`Collections.sort()`是Java中对List进行排序的方法,它接受一个List作为参数,并根据List中元素的自然顺序或者自定义比较器进行排序。在这个例子中,Map的键(key)通常是字符串或其他实现了Comparable接口的对象,...
Java中的Arrays类是Java.util包下提供的一个工具类,它包含了一系列静态方法,方便开发者对数组进行各种操作,包括但不限于排序、搜索、比较、复制、填充等。在深入讲解Arrays类的方法之前,我们先理解一下Java数组...
这与计算机默认的字典序排序不同。Dave Koelle在其网站DaveKoelle.com上提出了一种Alphanum算法,专门用于解决这个问题。 Alphanum算法的核心思想是将字符串拆分成数字和非数字的部分,然后对它们分别进行比较。...
- 使用 `TreeSet` 可以自然排序或自定义排序。 - 使用 `LinkedHashSet` 可以保持插入顺序。 - 使用 `HashSet` 不保证排序。 #### 17. ArrayList和Vector的区别 - `ArrayList` 非线程安全,性能较高。 - `Vector` ...
例如,计算字符串的按字典序排序后的哈希值,如果两个字符串的哈希值相同,它们可能是字母异位词。 5. **伪代码**:PseudoCode.pdf可能包含了用伪代码描述的算法,这是一种介于自然语言和编程语言之间的表达方式,...