【关于Java8中的Comparator那些事】教程文章相关的互联网学习教程文章

java-在Comparator.comparing中转换为可序列化【代码】

这个问题已经在这里有了答案: > Why does Java 8’s Comparator.comparing() cast the return value to Serializable? 1个看着java.util.Comparator in the JDK 8 source code,我发现了有趣的代码:public static <T, U extends Comparable<? super U>> Comparator<T> comparing(Function<? super T, ? extends U> keyExtractor){Objects.requireNonNull(keyExtractor)...

NoSuchMethodError-没有静态方法比较(java / util / Comparator)【代码】

我正在Android设备上使用Gluon从java.util中对列表进行排序.即使分配了8GB,该应用程序也无法针对iOS进行编译(内存不足),但这是另一个问题. classpath’org.javafxports:jfxmobile-plugin:1.3.4′ 编译’com.gluonhq:charm:4.3.2′ jfxmobile版本=’3.2.4′ 这行导致崩溃: highscoreList.sort(comparing(Highscore :: getScore).reversed()); //#8903-22 09:42:14.709 27312 27337 E AndroidRuntime: FATAL EXCEPTION: JavaFX ...

Java Comparator reversed()方法产生了奇怪的结果【代码】

我有一个关于分数背包问题的编程作业.作为解决问题的方法,我们需要按利润/重量比的降序填充项目.我使用自定义比较器对项目进行排序. 检查以下Item类中的profitByWeightComparator:class Item {private int itemNumber;private int profit;private int weight;public Item() {profit=weight=0;}public Item(int itemNumber, int profit, int weight) {this.itemNumber = itemNumber;this.profit = profit;this.weight = weight;}pu...

Java中Comparable和Comparator【代码】

转 https://www.cnblogs.com/shamo89/p/9617528.html Comparable Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang; import java.util.*; public interface Comparable<T> {pub...

Java 8 Comparator keyExtractor【代码】

这个问题已经在这里有了答案: > Comparator.comparing(…) of a nested field 3个在Java 8 Comparator中,我们可以如下创建一个比较器.Comparator.comparing(keyExtractor);目前,我的课程如下class Employee {String name;Department dept; }class Department {String departmentName; }现在,如果我想为Employee类创建一个比较器,该比较器根据部门名称对记录进行排序,我...

java – 带有Comparator <?>参数的TreeSet构造函数【代码】

在Java的类TreeSet文档中,其中一个构造函数显示为具有以下标题:TreeSet(Comparator<? super E> c)有人可以帮助解释为什么TreeSet的构造函数将比较器对象作为其参数吗?我不知道为什么要这样做.解决方法:TreeSet中的元素保持排序. 如果使用没有Comparator的构造函数,则元素类的自然顺序(由Comparable的实现定义)将用于对TreeSet的元素进行排序. 如果需要不同的顺序,可以在构造函数中提供Comparator.

使用Comparator接口和java 8 Streams进行排序【代码】

Parent是Child继承的类.这是由GrandChild继承的.每个类包含子类的List(即Parent包含Child和Child的List包含GrandChild的List).每个类包含50个属性(attrib1-atrib50).getChildList()返回类型为Child的对象的arrayList getGrandChildList()返回GrandChild类型的对象的arrayList 设resultSet为Parent列表List<Parent> resultSet现在我想根据一些属性对列表进行排序.例如,如果我想基于两个父属性(比如属性1和属性2)对resultSet进行排序...

java – 如何使用Comparator接口【代码】

我是java的新手,我真的不知道如何使用比较器接口.我在Inventory类和Item类中有一个ItemsList.在我写的Item类中:public class Item implements Comparator<Item> {//stuff...@Overridepublic int compare(Item a, Item b) {if (a.getID().compareToIgnoreCase(b.getID())>0)return 1;else if (a.getID().compareToIgnoreCase(b.getID())<0)return -1;elsereturn 0;} }getID()方法只提供id,我必须使用它来按字母顺序排列项目.我不确...

java.lang.NoSuchMethodError:排序arraylist android中没有接口方法排序(Ljava / util / Comparator;)异常【代码】

我正在尝试在Android应用程序中使用Java对ArrayList进行排序,但我得到了这个奇怪的异常. 码:eventsList.sort(new Comparator<Event>() {@Overridepublic int compare(Event event, Event t1) {return event.getEventStartDate().compareTo(t1.getEventStartDate());}});例外:java.lang.NoSuchMethodError: No interface method sort(Ljava/util/Comparator;)V in class Ljava/util/List; or its super classes (declaration of '...

java – 如何使用Collections和Comparator按升序对ArrayList进行排序【代码】

如何使用Comparator按升序对ArrayList进行排序?我知道如何使用以下降顺序对其进行排序:Comparator mycomparator = Collections.reverseOrder();然后Collections.sort(myarrayList,mycomparator);只是想知道如何使用集合和比较器按升序对其进行排序?谢谢!解决方法:把它扔到那里……你不能这样做:Collections.sort(myarrayList);虽然已经有一段时间了……

java – 嵌套字段的Comparator.comparing(…)【代码】

假设我有一个这样的域模型:class Lecture {Course course;... // getters }class Course {Teacher teacher;int studentSize;... // getters }class Teacher {int age;... // getters }现在我可以像这样创建一个教师比较器:return Comparator.comparing(Teacher::getAge);但是,我如何比较Lecture的嵌套字段,像这样?return Comparator.comparing(Lecture::getCourse::getTeacher:getAge) .thenComparing(Lecture::getCourse::getS...

关于Java8中的Comparator那些事【代码】【图】

在前面一篇博文中,对于java中的排序方法进行比较和具体剖析,主要是针对 Comparator接口和 Comparable接口,无论是哪种方式,都需要实现这个接口,并且重写里面的 方法。Java8中对其进行了优化,直接调用Comparator类即可实现一些自定义的排序功能,比如按照某个字段升序,并且按照某个字段降序排列;还有如果出现null 的情况怎么处理等等。下面是针对常见的 基础数据类型的list 和 对象的集合 进行排序的演示。 1 /**2 * 关于 j...

java – 如何正确初始化Comparator?【代码】

我需要在类MinTester中编写一个静态方法来计算“最小”字符串使用比较器对象从ArrayList集合:public static String min(ArrayList<String> list, Comparator<String> comp)我不能使用Collections类来计算最小值. 这是我到目前为止所拥有的.public class MinTester {public static String min(ArrayList<String> list, Comparator<String> comp){String shortest = list.get(0);for(String str : list) {if ( comp.compare(str, s...

java – 为什么不排序(Comparator :: reverseOrder)工作?【代码】

以下Stream表达式完美无缺:Stream<String> s = Stream.of("yellow","blue", "white");s.sorted(Comparator.reverseOrder()).forEach(System.out::print);` //yellowwhiteblue为什么没有与方法引用相同的编译?s.sorted(Comparator::reverseOrder).forEach(System.out::print);The type Comparator does not define reverseOrder(String, String) thatis applicable here解决方法:方法引用告诉Java“将此方法视为单方法接口的实现”...

java – 有一种简洁的方法来创建一个基于X.getY()排序的Comparator【代码】

有没有更短的说法:final Comparator<ClassA> byName = (final ClassA a1, final ClassA a2) -> a1.getName().compareTo( a2.getName() ));我知道getName()永远不会返回null. 也许使用方法参考沿着这些方向:final Comparator<ClassA> byName = ????( ClassA::getName );解决方法:你可以把它缩短为:final Comparator<ClassA> byName =Comparator.comparing(ClassA::getName);

JAVA8 - 相关标签