Java 将ArrayList转换为TreeSet

Java 将ArrayList转换为TreeSet,java,collections,Java,Collections,我有一个arraylistcards=new ArrayList,我需要将其转换为TreeSet。为此,我: new TreeSet<Card>(cards) 新树集(卡片) 毕竟,我的树集的大小等于1。Card类实现了compariable接口。我做错了什么或没有做什么?如果数组列表中的所有卡使用提供的可比界面计算为相等(即比较始终返回0)然后,如果数组列表中的所有卡使用提供的可比界面计算为相等,则在树集合中只会有一个条目(即比较始终返回0)然后,您的树集中只会有一个条目它们实

我有一个
arraylistcards=new ArrayList
,我需要将其转换为
TreeSet
。为此,我:

new TreeSet<Card>(cards)
新树集(卡片)

毕竟,我的
树集的大小等于1。
Card
类实现了
compariable
接口。我做错了什么或没有做什么?

如果
数组列表中的所有
使用提供的
可比
界面计算为相等(即
比较
始终返回
0
)然后,如果
数组列表中的所有
使用提供的
可比
界面计算为相等,则在
树集合中只会有一个条目(即
比较
始终返回
0
)然后,您的
树集中只会有一个条目

它们实现了可比性,但如何实现呢?
在树集合中,a.compareTo(b)返回0的元素只添加第一个。

它们实现可比较,但如何实现?
在树集合中,a.compareTo(b)返回0的元素,只添加第一个元素。

将列表转换为集合的最简单方法?-Java

Set<Foo> foo = new HashSet<Foo>(myList);

TreeSet tSet = new TreeSet(myList);
Set foo=newhashset(myList);
树集tSet=新树集(myList);

将列表转换为集合的最简单方法?-Java

Set<Foo> foo = new HashSet<Foo>(myList);

TreeSet tSet = new TreeSet(myList);
Set foo=newhashset(myList);
树集tSet=新树集(myList);

很可能只保留最后一个,但这只是我的迂腐行为。@OldCurmudgeon为了迂腐行为,我尝试了:Long a=Long.valueOf(123456789012345L);长b=长数值(123456789012345L);资产不相同(a、b);TreeSet s=新的TreeSet(Arrays.asList(a,b));资产质量(1,s.大小());资产相同(a,s.first());很可能只有最后一个会被保留,但这只是我的学究作风。@OldCurmudgeon为了学究作风,我尝试了:Long a=Long.valueOf(123456789012345L);长b=长数值(123456789012345L);资产不相同(a、b);TreeSet s=新的TreeSet(Arrays.asList(a,b));资产质量(1,s.大小());资产相同(a,s.first());这是关于树集的,不是哈希集。将ArrayList传递给树集。Treeset中有一个接受集合的构造函数。它是关于Treeset而不是HashSet的。将ArrayList传递给Treeset。树集合中有一个接受集合的构造函数。此解决方案有效。检查此操作
Card。与(Card-Card)
相比,此解决方案有效。检查此操作
Card。与(Card-Card)