(1)
可以详细讲一下TreeSet和HashSet的区别吗?set不是都无序的吗,为什么TreeSet里是有序的啊?(2)
汉字是怎么来进行比较的啊,是不是也是按照字母的字典顺序啊??可以用String类的compareTo()方法吗??比如说是“高”和“张”
可以详细讲一下TreeSet和HashSet的区别吗?set不是都无序的吗,为什么TreeSet里是有序的啊?(2)
汉字是怎么来进行比较的啊,是不是也是按照字母的字典顺序啊??可以用String类的compareTo()方法吗??比如说是“高”和“张”
解决方案 »
- 新手提问:如何在Windows下运行JAVA程序
- 很基础的问题,这个错误也许大家都遇到过,请大家帮个忙!
- volatile被声明之后有什么作用??
- 要运行SWT例子,在RUN对话框中哪个地方写-Djava.library.path
- 请教关于毫米与象素之间的转换问题
- 为什么有此方法的异常要捕捉,有的却不需要呢?能和详细说说吗?在这里谢谢了!
- 帮帮我:我的JBuilder的鼠标拖动选中文本的功能怎么老是不行
- 如何在Jb7中实现两个Frame类之间的通信?
- 做数据库用什么好?
- myeclipse连接sql server 2012 出现了以下错误,求助!!!
- reflect 与 overload
- JAVA方法返回一个对象,让我有点迷惑
1 不能保证元素的排列顺序,顺序有可能发生变化
2 不是同步的
3 集合元素可以是null,但只能放入一个null
当向HashSet结合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据hashCode值来决定该对象在HashSet中存储位置。简单的说,HashSet集合判断两个元素相等的标准是两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值相等。注意,如果要把一个对象放入HashSet中,重写该对象对应类的equals方法,也应该重写其hashCode()方法。其规则是如果两个对象通过equals方法比较返回true时,其hashCode也应该相同。另外,对象中用作equals比较标准的属性,都应该用来计算hashCode的值。
public int compareTo(String anotherString)
按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象在参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只有在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引对二者均为有效索引,要么它们的长度不同,或者同时具备上述两种情况。如果它们在一个或多个索引位置上具有不同的字符,假设 k 是这类索引的最小值;则按照 < 运算符确定的那个字符串在位置 k 上具有较小的值,其字典顺序在其他字符串之前。这种情况下,compareTo 返回这两个字符串在位置 k 处的两个不同的 char 值,即值: this.charAt(k)-anotherString.charAt(k)
如果它们没有不同的索引位置,则较短字符串在字典顺序上位于较长字符串的前面。这种情况下,compareTo 返回这两个字符串长度的不同,即值:
this.length()-anotherString.length()汉字也是String,应该也是按字典顺序比较,......