【问题标题】:Java add string value numbers into dynamic arraylist, in the right orderJava以正确的顺序将字符串值数字添加到动态数组列表中
【发布时间】:2015-03-21 09:23:33
【问题描述】:

我有一个 Objects 的数组列表,我将它们从 Sparql 查询中提取到 Java 中,将它们放入带有 while(result.hasNext())arraylist 中。

问题是我必须根据他们的URI 从查询中获取结果。所以 Object1 先出现,然后是 10,11 等,最后是 Object2

我希望将对象按顺序放置在数组列表(1,2,...,10,11..). 中对象并使用add(index, Object)

有没有办法在不知道数组列表大小的情况下做到这一点?

谢谢。

【问题讨论】:

  • 为什么要用ArrayList,能不能用其他类型的Collection?
  • 目前还不清楚你想要实现什么。为什么要使用add(index, Object)。 ArrayList 具有动态大小。它会自动为您调整大小。
  • 能否在查询中添加ORDER BY 子句?

标签: java string sorting arraylist add


【解决方案1】:

在您的类中实现 equals() 方法,该方法出现在 arrylist 中,然后使用 Collections.sort() 对您的数组列表进行排序。

【讨论】:

    【解决方案2】:

    试试Collections.sort(List, Comperator) 方法。

    只需将查询中的所有结果添加到列表中,并使用给定的 Comperator 对其进行排序。在此比较器中,您必须实现 compare() 方法以满足您的需求。

    【讨论】:

      【解决方案3】:

      我得到你需要的东西。您不需要使用比较器:

      String s = uri.toString();
      //trim your string to return only the Object index.
      int i = Integer.parseInt(s);
      list.add(i, Object);
      

      或者您可以使用 Map 并通过 URI 检索对象

      Map<URI, Object> = new HashMap<>();
      map.put(URI, Object);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-02
        • 1970-01-01
        相关资源
        最近更新 更多