首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期对LinkedHashset进行排序

按日期对LinkedHashset进行排序
EN

Stack Overflow用户
提问于 2016-03-07 19:34:27
回答 1查看 845关注 0票数 1

我有下面的LinkedHashset

它是LinkedHashset,因为我在添加时有许多重复的条目,并且它防止了这一点。

我怎样才能排序我的LinkedHashset

代码语言:javascript
复制
LinkedHashSet<String> uniqueStrings = new LinkedHashSet<>();

uniqueStrings.add("03/03/2016  00:00:00");
uniqueStrings.add("03/03/2016  00:30:00");
uniqueStrings.add("03/03/2016  01:00:00");
uniqueStrings.add("03/03/2016  00:30:00");
uniqueStrings.add("03/03/2016  00:01:00");



List<String> asList = new ArrayList<>(uniqueStrings);
System.out.println((asList+ "\n"));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 20:07:23

使用带有比较器的TreeSet,该比较器分析文本到目前为止。

代码语言:javascript
复制
private static Date safeParse(DateFormat dateFormat, String str) {
    try {
        return dateFormat.parse(str);
    } catch (ParseException e) {
        throw new RuntimeException(e);
    }
}

public static void main(String[] args) {
    DateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
    Comparator<String> comparator = (a, b) -> safeParse(format, a).compareTo(safeParse(format, b));

    Set<String> uniqueStrings = new TreeSet<>(comparator);

    uniqueStrings.add("03/03/2016  00:00:00");
    uniqueStrings.add("03/03/2016  00:30:00");
    uniqueStrings.add("03/03/2016  01:00:00");
    uniqueStrings.add("03/03/2016  00:30:00");
    uniqueStrings.add("03/03/2016  00:01:00");

    uniqueStrings.stream().forEach(System.out::println);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35852395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档