*动态值*固定长度的数组左右

时间:2014-05-30 10:07:20

标签: java

我写了一个搜索应用程序,将找到的值放在列表中,但现在我必须限制它 - 不超过10个结果。好吧 - 如果我找到了等价字符串,我会把它放在第一位(插入0位置) - 所有其他我必须存放在任何其他位置。 你能帮助我 - 选择什么样的存储 - 以满足这个要求吗?

所以样本 搜索字符串:aa 搜索数据:bb,1aa,aa,......... 2aa,......... cc,............ 9aa,... .............

结果是N步(aa,1aa,.... 9aa),我们需要添加13aa 所以结果必须是(aa,1aa,...,13aa)(< -put as last as simple)

2 个答案:

答案 0 :(得分:1)

我会使用ArrayList并通过添加几个条件来检查它的大小,或者如果你想要更集中的解决方案,那么通过覆盖这样的add方法:

public class LimitedArrayList extends ArrayList<String> {
  @Override
  public boolean add(String e) {
      if (this.size() == 10) {
          // Remove an item or return
      }
      return super.add(e);
      // Or add as first item
      // return add(0, e);
  }
  public void add(int index, String e) {
      if (this.size() == 10) {
          // Remove an item or return
      }
      super.add(index, e);
  }
}

和addAll方法也是。

编辑:固定类型参数

答案 1 :(得分:0)

有很多解决方案。 简单的解决方案是:将所有条目存储在数据库中,并仅从数据库中检索前10行或条目。

ex:从table_name中选择前10 *;