标签: comparable

基于java中的不同数据成员对对象列表进行排序


我有这门课:

public class Friend {

private String name;
private String location;
private String temp;
private String humidity;

public String getTemp() {
    return temp;
}

public void setTemp(String temp) {
    this.temp = temp;
}

public String getHumidity() {
    return humidity;
}

public void setHumidity(String humidity) {
    this.humidity = humidity;
}

public String getName() {
    return name;
}

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


public String getLocation() {
    return location;
}

public void setLocation(String location) {
    this.location = location; …
Run Code Online (Sandbox Code Playgroud)

java sorting string collections comparable

3
推荐指数
2
解决办法
6355
查看次数

可比较用作二叉树中的结构

我有一个用 Java 编写的二叉树,效果很好。但是我想增强节点中的数据内容。目前,我可以在其上添加值,例如:

for( int i = 1; i <=10; i++ )
    t.insert( new Integer( i ) );
Run Code Online (Sandbox Code Playgroud)

这将添加这样的项目:

public void insert( Comparable item ) {
    current = parent = grand = header;
    nullNode.element = item;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是树的格式:

private static class RedBlackNode {
    // Constructors
    RedBlackNode( Comparable theElement ) {
        this( theElement, null, null );
    }

    RedBlackNode( Comparable theElement, RedBlackNode lt, RedBlackNode rt ) {
        element  = theElement;
        left     = lt;
        right    = rt;
        color    = RedBlackTree.BLACK;
    }

    Comparable …
Run Code Online (Sandbox Code Playgroud)

java binary-tree comparable data-structures

3
推荐指数
1
解决办法
328
查看次数

LocalDate中的一般问题

我有以下代码.我原本期待Arrays.asList(LocalDate.of(2014, 1, 1), LocalDate.of(2015, 2, 2))转换成清单LocalDate.但我得到编译时错误max(dates).可能是导致此错误的原因是什么?

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class C {

    public static <T extends Comparable<T>> T max(List<T> d) {
        if (d.size() == 0) {
            return null;
        }

        T maxValue = d.get(0);
        for (T temp : d) {
            if (maxValue.compareTo(temp) < 0) {
                maxValue = temp;
            }
        }

        return maxValue;
    }

    public static void main(String[] args) {
        List<LocalDate> dates = new ArrayList<>();
        dates.add(LocalDate.of(2015, 9, 15));
        dates.add(LocalDate.of(2010, 9, …
Run Code Online (Sandbox Code Playgroud)

java generics list arraylist comparable

3
推荐指数
1
解决办法
423
查看次数

为什么 com.fasterxml.jackson.core.type.TypeReference 实现 Comparable 接口?

为什么com.fasterxml.jackson.core.type.TypeReference实现Comparable 接口

我不明白实施它的意图。

public abstract class TypeReference<T> implements Comparable<TypeReference<T>> {
    protected final Type _type;
    
    protected TypeReference() {
        Type superClass = getClass().getGenericSuperclass();
        if (superClass instanceof Class<?>) { // sanity check, should never happen
            throw new IllegalArgumentException("Internal error: TypeReference constructed without actual type information");
        }
        /* 22-Dec-2008, tatu: Not sure if this case is safe -- I suspect
         *   it is possible to make it fail?
         *   But let's deal with specific
         *   case when we know an …
Run Code Online (Sandbox Code Playgroud)

java comparable jackson

3
推荐指数
1
解决办法
1446
查看次数

如何对集合中的两个不同对象进行排序?

假设我有两个类CLassA和CLassB.它们有一个共同点,例如每个类所持有的元素数量.

我怎样才能在这一属性创建ClassA和ClassB的和排序的对象集合(降序排列的上升,并不重要)?

我创建了一个类型的集合,但是当我尝试实现Comparable Interface时,我无法访问该方法(例如,返回nr元素的get).

我有什么解决方案?

谢谢你的帮助!

java sorting collections class comparable

2
推荐指数
1
解决办法
3474
查看次数

在Java中扩展现有对象以实现Comparable

目前我的问题是我需要使用一个我不允许更改的现有框架,解决我的问题最方便的方法是使用Comparable对象.假设我有一个对象Foo,它没有实现Comparable,我不允许进入并更改它以使其可比较.我的想法是只使用Bar,它扩展了Foo并实现了Comparable.

public class Bar extends Foo implements Comparable
{
   public int compareTo( Object o)
   {
      Foo f = (Foo) o;
      if( this.getID() < f.getID() ) return -1;
      else if ( this.getID() == f.getID() ) return 0;
      else return -1;
   }
}
Run Code Online (Sandbox Code Playgroud)

但是假设我在某个地方得到了Foo的一个实例.如何将其变成Bar的实例?是否有针对这种情况的推荐替代解决方案?

java comparable

2
推荐指数
1
解决办法
1221
查看次数

在Java中以通用方式实现comprable方法以进行排序

我正在尝试实现一个通用选择排序,它可以接受任何对象并对其进行排序.我可以向编译器承诺,无论我比较什么对象,都要为它实现compareTo方法.但是我得到以下代码的编译错误

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class SelectionSortGenerics implements Comparable<E> {

    private <E> void swap(E[] a, int i, int j) {
        if (i != j) {
            E temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
    }

    public <E> void selectionSort(E[] a) {
        for (int i = 0; i < a.length - 1; i++) {
            // find index of smallest element
            int smallest = i;
            for (int j = i + 1; j < a.length; j++) { …
Run Code Online (Sandbox Code Playgroud)

java sorting generics compareto comparable

2
推荐指数
1
解决办法
1万
查看次数

Java使用Comparator

我在我的类Employee中实现了Comparator和Comparable来对一个arraylist进行排序.我正在排序2参数名称和ID.使用Collections.sort(Employee ob1,Employee ob2)使用ID进行排序时,它不起作用.我得到编译错误,该类没有声明为abstact,我没有重写compare(),虽然我这样做:

public int compare(Employee ob1, Employee ob2)
{
return ob1.id-ob2.id;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用它,它工作正常

public int compare(Object ob1, Object ob2)
{
return ((Employee)ob1).id-((Employee)ob2).id;
}
Run Code Online (Sandbox Code Playgroud)

我怀疑的是,为什么早期的工作不起作用,因为Employee也是一个Object.同样的问题也是compareTo(Object ob),虽然重写为什么我不能直接使用Employee,为什么我需要在那里使用Object,以后需要将它转换为Employee类.

java comparable comparator

2
推荐指数
1
解决办法
112
查看次数

CompareTo的可比性不带对象类型以外的参数.

这似乎很奇怪,这不符合我的预期.我写了一个简单的java类,它实现了Comparable接口并覆盖了compareTo()方法.但是,它不允许我传递除Object之外的特定类型的参数.我查看了其他人的在线代码,他们使用了其他类型的对象,我将他们的代码复制到了eclipse中,但我仍然遇到了同样的错误.

我的问题是; 我要做的就是将这个对象与类型的对象进行比较让我们说.我对比较器接口(compare()方法)也有同样的问题.

这段代码是我在网上找到的.

public class Person implements Comparable {

private String name;
private int age;

public Person(String name, int age) {
    this.name = name;
    this.age = age;
}

public int getAge() {
    return this.age;
}

public String getName() {
    return this.name;
}

@Override
public String toString() {
    return "";
}

@Override
public int compareTo(Person per) {
    if(this.age == per.age)
        return 0;
    else
        return this.age > per.age ? 1 : -1;
}

public static void main(String[] args) {
    Person e1 …
Run Code Online (Sandbox Code Playgroud)

java comparable comparator

2
推荐指数
2
解决办法
3204
查看次数

如何根据其对象属性值从ArrayList中获取最小值/最大值?

我要实现的是从获取对象的min / max属性值ArrayList<Object>。例如,如果Object具有属性weight(浮点数),则我想要列表中最重的对象。

我试图实现Comparable以获取最大值/最小值,但是出于某种原因,此最小值返回相同的值,最大值返回相同的值。(我不知道它是否适用于浮点数)

    val maxVal: Float = arrayList.max().floatVal1
    val minVal: Float = arrayList.min().floatVal1

    data class CustomObject(var val1: String, var floatVal1: Float , var floatVal2: Float?, var floatVal3: Float?, var floatVal4: Float?): Comparable<CustomObject>{
        override fun compareTo(other: CustomObject) = (floatVal1 - other.floatVal1).toInt()
    }
Run Code Online (Sandbox Code Playgroud)

重复帖子中的那个具体问题并未向我展示如何基于Float获得最大/最小价值。那就是问题所在。如果我要修改Comparator,则它仅接受Int。而且我无法使用该流功能,因为我的应用程序适用于API 23+而非24+

arraylist comparable kotlin

2
推荐指数
2
解决办法
1284
查看次数