我有一个LoginID数据库,不能包含1000个用户。现在要检查用户是否存在,正在将数据库的所有LoginID值存储到一个arraylist中,而不是使用它来检查它是否存在。

码:

while(result.next())
{
  String str = result.getString(1);
  LoginID_arraylist.add(str);
}

if(LoginID_arrayList.contains(loginid)
{
    // if exist --> than another query using loginid
}


这是达到我想要的结果的好方法吗?还有什么替代方法.....如果我的身材进一步扩大,会影响我的表现吗?
我正在使用MySql和JDBC。

最佳答案

不要使用ArrayList进行contains搜索。具有O(n)性能。而是使用具有O(1)查找的HashSet

但是,更好的是不要首先查询所有行。只需进行查询:

SELECT COUNT(*) FROM users WHERE login_id = ?


然后查看结果是否为0。

10-08 03:05