由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - Comparator Accessor method for SortedSet
相关主题
2 Questions about ConstructorTop Ten Errors Java Programmers Make(7)
JTable column sorting problem.a java problem
Sort TreeMap by value?Pretty good writeup comparing EJB3 and Spring
error: generic array creationJFreeChart一编译错误
泛型问题question about generic( runtime error)
pipe & filter 问题帮忙看看???这里应该填什么
java里的时间计算comparable interface in generic container
guessContentTypeFromStream(InputStream)总是返回null怎么办?问个初级的generic的问题
相关话题的讨论汇总
话题: comparator话题: sortedset话题: accessor话题: method话题: sorted
进入Java版参与讨论
1 (共1页)
I*******o
发帖数: 53
1
SortedSet有这么一个Comparator Accessor method:
Comparator comparator();
关于这个Comparator Accessor,Java tutorial里面的解释是这样的:
==================
http://java.sun.com/docs/books/tutorial/collections/interfaces/sorted-set.html
The SortedSet interface contains an accessor method called comparator
that returns the Comparator used to sort the set, or null if the set is
sorted according to the natural ordering of its elements. This method is
provided so that sorted sets can be copied into new s
g*****g
发帖数: 34805
2
SortedSet is an interface, TreeSet is an implementing class.
As far as I know, interface can only have public methods.

previously.

【在 I*******o 的大作中提到】
: SortedSet有这么一个Comparator Accessor method:
: Comparator comparator();
: 关于这个Comparator Accessor,Java tutorial里面的解释是这样的:
: ==================
: http://java.sun.com/docs/books/tutorial/collections/interfaces/sorted-set.html
: The SortedSet interface contains an accessor method called comparator
: that returns the Comparator used to sort the set, or null if the set is
: sorted according to the natural ordering of its elements. This method is
: provided so that sorted sets can be copied into new s

I*******o
发帖数: 53
3
那么这就涉及2个问题了
Q1: comparator()作为public method的话,有用途么?
Q2:如果comparator()没有其他用途,实际上只是为了给constructor用一下,
却因为是interface method而不得不成为public,这个算是违反encapsulation原则了
吧?
是否有另外一个mechanicsm/pattern可以做到类似的框架,却把comparator()给封装起
来?

【在 g*****g 的大作中提到】
: SortedSet is an interface, TreeSet is an implementing class.
: As far as I know, interface can only have public methods.
:
: previously.

g*****g
发帖数: 34805
4
Sure, one usage is to check if this SortedSet has a comparator,
null means no and SortedSet falls back to Set. You may also
want to check what kind of Comparator this is, different comparator leads
to different sequence.
if(treeSet.comparator() instanceof ...)

【在 I*******o 的大作中提到】
: 那么这就涉及2个问题了
: Q1: comparator()作为public method的话,有用途么?
: Q2:如果comparator()没有其他用途,实际上只是为了给constructor用一下,
: 却因为是interface method而不得不成为public,这个算是违反encapsulation原则了
: 吧?
: 是否有另外一个mechanicsm/pattern可以做到类似的框架,却把comparator()给封装起
: 来?

m******t
发帖数: 2416
5

Say you are writing your own SortedSetImpl, according to the contract
defined in SortedSet (see the javadoc), SortedSetImpl is supposed to have "a
constructor with a single argument of type SortedSet, which creates a new
sorted set with the same elements and the same ordering as the input sorted
set"
So in order to replicate the ordering, at some point inside SortedSetImpl(
SortedSet original) you would need to call origin.comparator() to get the
same comparator and use that to sort.
It can be

【在 I*******o 的大作中提到】
: 那么这就涉及2个问题了
: Q1: comparator()作为public method的话,有用途么?
: Q2:如果comparator()没有其他用途,实际上只是为了给constructor用一下,
: 却因为是interface method而不得不成为public,这个算是违反encapsulation原则了
: 吧?
: 是否有另外一个mechanicsm/pattern可以做到类似的框架,却把comparator()给封装起
: 来?

r*****l
发帖数: 2859
6

狭义地说,comparator()的返回值是给“别的class的”
constructor用的。不是给自己用的。所以不能是private。
maticfat解释得比较清楚了。
广义地说,comparator()的意义是告诉别人“我是怎样排序的”。
如果comparator()的返回值是null,那么这个SortedSet里面的
element必须implements Comparable(),SortedSet用Comparable()
排序。

【在 I*******o 的大作中提到】
: 那么这就涉及2个问题了
: Q1: comparator()作为public method的话,有用途么?
: Q2:如果comparator()没有其他用途,实际上只是为了给constructor用一下,
: 却因为是interface method而不得不成为public,这个算是违反encapsulation原则了
: 吧?
: 是否有另外一个mechanicsm/pattern可以做到类似的框架,却把comparator()给封装起
: 来?

1 (共1页)
进入Java版参与讨论
相关主题
问个初级的generic的问题泛型问题
怎样读取修改一个csv filepipe & filter 问题
完全新手的一个初级编程问题java里的时间计算
java inner class - 初学者问guessContentTypeFromStream(InputStream)总是返回null怎么办?
2 Questions about ConstructorTop Ten Errors Java Programmers Make(7)
JTable column sorting problem.a java problem
Sort TreeMap by value?Pretty good writeup comparing EJB3 and Spring
error: generic array creationJFreeChart一编译错误
相关话题的讨论汇总
话题: comparator话题: sortedset话题: accessor话题: method话题: sorted