【问题标题】:How handle this type of data into Array - JAVA如何将这种类型的数据处理成 Array - JAVA
【发布时间】:2017-03-15 20:05:29
【问题描述】:

在我的应用程序中,我有一个函数可以为我提供那种类型的数据:

a Year(int) 和与该年份关联的 String(年份可以关联更多字符串):

2016 - “1A2B3C”

2009 - “8DF56R”

2009 - “8E4I1J”

2013 - “P6F2T8”

2009 - “4K6J5U”

我想为每个年份创建一个字符串数组,而不是对年份进行排序以增加年份。像这样:

2009 - “8DF56R” “8E4I1J” “4K6J5U”

2013 - “P6F2T8”

2016 - “1A2B3C”

年份应该是索引, 如何检索该输出?

很抱歉这个菜鸟问题,但我尝试了数组、ArrayList 和 Map 的数组,但我可能遗漏了一些东西。

【问题讨论】:

  • 地图应该可以工作的。

标签: java android arrays sorting


【解决方案1】:

您应该像这样使用Lists 中的Map

Map<Integer, List<String>> = new TreeMap<>();

您可以填写与Integer 键(日期)关联的Lists。 TreeMap 根据自然顺序对您的键进行排序(如果我没记错的话,默认为升序)。

如果他的默认值对你不满意,你也可以创建一个自定义Comparator

【讨论】:

  • 我正在尝试实施您的解决方案,我添加了一段用于添加数据的代码,您可以检查是否正确?
  • 您的代码无法编译。您可能想在Map 上使用containsKey 方法来检查其中是否包含给定的年份。
【解决方案2】:

另一个解决方案是创建一个包含您的信息(年份、字符串等)并实现 Comparable 接口的 T 类。方法 compareTo(T) 将比较年份。通过这种方式,您可以处理更多信息。 这种类型的对象可以插入到 SortedSet 中,例如,或者与 Collections.sort 或 Java8 Stream 一起使用的 List。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多