Java 使用两个比较器的最佳方式是什么?

Java 使用两个比较器的最佳方式是什么?,java,inner-classes,comparator,Java,Inner Classes,Comparator,我目前使用以下结构在一段时间间隔内获取OHLC数据 class MarketDataItem{ .... static class DateComparator implements Comparator<MarketDataItem>{ } static class PriceComparator implements Comparator<MarketDataItem> { } } class MarketDat

我目前使用以下结构在一段时间间隔内获取OHLC数据

class MarketDataItem{
    ....

    static class DateComparator implements Comparator<MarketDataItem>{

    }

    static class PriceComparator implements Comparator<MarketDataItem> {

    }   
}

class MarketDataGroup{
    private TreeSet<MarketDataItem> sortedByDate = Sets.newTreeSet(new MarketDataItem.DateComparator());
    private TreeSet<MarketDataItem> sortedByPrice = Sets.newTreeSet(new MarketDataItem.PriceComparator());  

}
类MarketDataItem{
....
静态类DateComparator实现Comparator{
}
静态类PriceComparator实现Comparator{
}   
}
类MarketDataGroup{
private TreeSet sortedByDate=Sets.newTreeSet(new-MarketDataItem.DateComparator());
private TreeSet sortedByPrice=Sets.newTreeSet(new MarketDataItem.PriceComparator());
}

在marketDataItem或marketDataGroup中使用Comparator更好/更好/更快/更少吗?

这没有什么区别-它们是静态嵌套类,因此就好像它们是完全独立的类型一样。不同类别的可访问性有所不同,但效率应该是相同的。

不。我认为您的实施是最佳的。我们也遇到过类似的需求,并且是这样做的