Java 中排序链表
Java 中的链表是一种数据结构或集合,允许用户在内存中创建动态数组。该列表不包含任何预定义的大小。它动态地创建节点并在单个内存地址中存储值和对下一个节点的引用。列表元素按顺序保留值,或者列表保持插入元素的插入顺序。
排序被定义为以一定顺序排列数据结构中的元素的方法。根据要求,排列可以是升序或降序。请注意,可以有多种方法来对列表集合进行排序。
下面是对数组中的元素进行排序的代码块。
import java.text.Collator;
import java.util.Comparator;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
list.add("ab");
list.add("bb");
list.add("aA");
list.add("bB");
System.out.println(list);
list.sort(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Collator.getInstance().compare(s1, s2);
}
});
System.out.println(list);
}
}
在上面的代码块中,使用 new
关键字实例化了一个列表。关键字实例化 String
数据类型的链表并在内部调用构造函数。然后,列表实例调用 add
方法来填充列表中的元素。该值被打印以检查插入顺序。
sort
方法存在于 List
接口中。该函数根据作为参数给出的一些比较器对列表进行排序。比较器用于比较传递的元素列表。
你应该考虑的一点是对传递的值进行排序并确保它们必须属于同一类型。如果值的类型不同或元素不可比较,则该类将抛出 ClassCastException
。
排序的内部实现是使用 merge sort
命令完成的,该命令足够有效并且在 log n
时间内进行比较。所以形成了一个 new Comparator
实例,它覆盖了 compare
方法。实现是方法覆盖和提供实现的传统方式。
相反,可以使用使用 Java 8 lambda 函数的单行实现。该接口是一个函数式接口,只有一个方法可以调用。lambda 直接获取接口中存在的参数数量。上面代码的单行 Java 8 表示如下所示。
list.sort((o1, o2) -> Collator.getInstance().compare(o1, o2));
比较列表中元素的实际语句是 collator
类。这个类本质上是抽象的,定义了方法的原型。实现存在于扩展它们的抽象类中。
collator
类比较区域设置敏感的字符串。getInstance
方法获取具有当前默认 Locale
值的实例。compare
函数比较基于 collator
的值,并根据大于、小于或等于的值返回 +1
、-1
或 0
。
上面代码的输出如下所示。第二行表示排列形式的输出。根据键盘上字符的 ASCII
序列,大写字母的范围(A-Z)高于小字母(a-z)。因此,第二行中的结果列表首先打印小写 bb
,然后打印 bB
,因为它有大写字母。
[ab, bb, aA, bB]
[aA, ab, bb, bB]
相关文章
在 Java 中将集合转换为列表
发布时间:2023/10/16 浏览次数:173 分类:Java
-
本文提供并解释了在 Java 中将集合转换为列表的各种方法。本文将介绍和讨论在 Java 中将集合转换为列表的不同方法。在 Java 中使用构造函数将集合转换为列表
在 Java 中将 Stream 转换为列表
发布时间:2023/10/16 浏览次数:151 分类:Java
-
本文介绍 Java 中 Stream 到 List 的转换。本教程介绍了 Java 中 Stream 到 List 的转换。Stream 是对象的集合。Stream 不存储任何数据,因此它不是数据结构。
在 Java 中将 map 值转换为列表
发布时间:2023/10/16 浏览次数:104 分类:Java
-
在本教程中,我们将执行三个程序来向你展示如何将 Hashmap 值转换为 Java 中的列表。所有示例都是动态的,并且包含构建可靠逻辑的有用方法。
在 Java 中的冒泡排序算法对手动链表进行排序
发布时间:2023/10/11 浏览次数:96 分类:Java
-
首先,我们将通过节点示例讨论 Java 中的冒泡排序算法。然后,我们将执行两种方法来演示如何使用手动冒泡排序算法对链表进行排序。
在 Java 中将列表转换为 map
发布时间:2023/10/11 浏览次数:150 分类:Java
-
本教程介绍如何在 Java 中将列表转换为 mapList 允许维护有序的对象集合。Map 对象将键映射到值。在 Java 中,有几种方法可以将对象的 List 转换为 Map。在本文中,我们将学习其中的一些。
在 Java 中按字母顺序对列表进行排序
发布时间:2023/10/11 浏览次数:80 分类:Java
-
本文介绍如何在 Java 中按字母顺序对列表进行排序。本教程介绍如何在 Java 中按字母顺序对元素列表进行排序。List 是一种线性数据类型,用于在 Java 中存储类似类型的元素。
Java 中的未经检查的强制转换
发布时间:2023/10/11 浏览次数:50 分类:Java
-
这篇文章解释了 Java 中的 unchecked cast 警告。Java 是一种强制类型安全的编程语言,这意味着我们应该始终指定我们将要存储或使用的数据类型,并且不能在其中存储不兼容的类型。
如何在 Java 中检查变量的类型
发布时间:2023/10/11 浏览次数:154 分类:Java
-
本文介绍了 Java 中检查变量类型的方法。在Java中,了解变量或对象的类型对于编写高效且灵活的代码至关重要。
在 Java 中使用后缀 F
发布时间:2023/10/11 浏览次数:136 分类:Java
-
本教程演示了在 Java 中使用带有数值的 f 后缀。Java 中的十进制值默认是 double 值。当我们只需要浮点值时,我们必须告诉编译器它是一个浮点值。