我写了一个搜索应用程序,将找到的值放在列表中,但现在我必须限制它 - 不超过10个结果。好吧 - 如果我找到了等价字符串,我会把它放在第一位(插入0位置) - 所有其他我必须存放在任何其他位置。 你能帮助我 - 选择什么样的存储 - 以满足这个要求吗?
所以样本 搜索字符串:aa 搜索数据:bb,1aa,aa,......... 2aa,......... cc,............ 9aa,... .............
结果是N步(aa,1aa,.... 9aa),我们需要添加13aa 所以结果必须是(aa,1aa,...,13aa)(< -put as last as simple)
答案 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 *;