我试图使用下面的代码创建一个TreeSet实例。
get
这里有什么?提前谢谢。
答案 0 :(得分:4)
由于您需要SortedSet
界面的方法,请将treeSet
的类型更改为SortedSet
:
SortedSet<Integer> treeSet = new TreeSet<>();
treeSet.last();
答案 1 :(得分:3)
Set interface没有这些方法。其他数据结构(如HashSet
)实现Set
接口,但它们不保证顺序,因此这些方法没有用处。
您可以使用该类而不是接口
TreeSet<Integer> treeSet = new TreeSet<>();
答案 2 :(得分:1)
设置数据结构行为不适用于排序元素。所以SET没有这些方法。 Treeset是实现此功能的中间方式,因为它具有通过融合
实现的排序机制设置+红黑树
数据结构。
SortedSet是另一个为此目的而开发的实现。
使用
进行SortedSet<Integer> set = new TreeSet<>();
set.last();
答案 3 :(得分:0)
Set Interface没有first()&amp; last()方法,所以使用TreeSet类型
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.last();
}
}
答案 4 :(得分:0)
集合表示不包含重复元素的集合。因此,接口只允许get set和iterate操作。
为了您的目标,继续使用TreeSet(实现SortedSet)
treeSet
答案 5 :(得分:0)
在您的代码Set
中,first
类型没有last
或TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.last() //gives compilation error
//solution here is either to cast the treeSet instance
//Or create treeSet using TreeSet concrete class. Which is not a best practice.
方法。如果您将使用TreeSet,您将可以访问这些方法:
->diffForHumans()
答案 6 :(得分:0)
iterator()
接口是一个不被认为是有序的集合。虽然这在课堂上并不明确,但它完全取决于班级的方法,例如: first
:
返回此set中元素的迭代器。元素以无特定顺序返回(除非此集合是某个提供保证的类的实例)。
要获得last
和SortedSet
,您需要订单或索引,而Set则不需要。正如许多其他人已经指出的那样,如果您想要订单,可以使用TreeSet
。
SortedSet
实现SortedSet<Integer> treeSet = new TreeSet<>();
treeSet.last();
,因此您当然可以将提供的代码修改为:
$row