gpt4 book ai didi

java : TreeSet Collection and Comparable interface

转载 作者:行者123 更新时间:2023-12-04 10:48:04 26 4
gpt4 key购买 nike

我有以下代码:
我正在尝试在 TreeSet 中插入 Item 对象,但没有得到期望的输出。

public class Main
{
public static void main(String a[])
{
Item i1=new Item(1,"aa");
Item i2=new Item(5,"bb");
Item i3=new Item(10,"dd");
Item i4=new Item(41,"xx");
Item i5=new Item(3,"x5");
TreeSet t=new TreeSet();
t.add(i1);
t.add(i2);
t.add(i3);
t.add(i4);
t.add(i5);
System.out.println(t);
}
}
class Item implements Comparable<Item>
{
String nm;
int price;
public Item(int n,String nm)
{
this.nm=nm;
price=n;
}
public int compareTo(Item i1)
{
if(price==i1.price)
return 0;
else if(price>=i1.price)
return 1;
else
return 0;
}
public String toString()
{
return "\nPrice "+price+" Name : "+nm;
}
}

输出 :

[ 价格 1 名称:aa,
价格 5 名称:bb,
价格 10 名称:dd,
价格 41 名称:xx]
Item i5=new Item(3,"x5");为什么没有插入?
为什么我可以在 TreeSet 中插入。

最佳答案

你还没有实现compareTo()正确。这是 javadoc 的摘录:

Compares this object with the specified object for order. Returns a negative integer,
zero, or a positive integer as this object is less than, equal to, or greater than
the specified object.

您的实现不返回 -1如果当前对象的价格低于您比较的对象的价格。

关于 java : TreeSet Collection and Comparable interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com