Tag: treeset stringbuffer

可以将StringBuffer对象作为Java中TreeSet中的键吗?

我有以下代码,我试图将StringBuffer对象作为键设置在TreeSet中。 我这样做的原因是看我是否可以将可变对象作为键。 我没有得到任何编译错误。 但是当我运行此代码时,我得到的代码下面的错误。 特别是,我得到这个java.lang.StringBuffer cannot be cast to java.lang.Comparable 。 这个错误表明了什么? 从javadoc我看到StringBuffer类被声明为final( public final class StringBuffer ),这是不是意味着它是不可变的,因此可以散列? 我是哈希和不变的东西的新手,所以请在这里帮助我。 谢谢 import java.util.*; class MutableKeys { public static void main(String[] args) { StringBuffer one = new StringBuffer(“one”); StringBuffer two = new StringBuffer(“two”); StringBuffer three = new StringBuffer(“three”); Set sb=new TreeSet(); sb.add(one); sb.add(two); sb.add(three); System.out.println(“set before change: […]