java - 检索记录时使用 MySql 数据库的 ArrayList 性能

标签 java mysql arraylist

我有一个可以包含 1000 个用户的登录 ID 数据库。现在要检查用户是否存在,我正在做的是将我数据库的所有 LoginID 值存储到数组列表中,而不是使用检查它是否存在

代码:

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 进行包含 搜索。这具有 O(n) 性能。相反,使用具有 O(1) 查找的 HashSet

但是,更好的做法是一开始就不要查询所有行。只需提出您的查询:

SELECT COUNT(*) FROM users WHERE login_id = ?

然后看结果是否为0

关于java - 检索记录时使用 MySql 数据库的 ArrayList 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285087/

相关文章:

java - 捕获 JSP 输出,保存到文件

mysql - 以月份中的天数为列的 SQL 查询

安卓,SQLite : Inserting data in while clause is very slow

java - 如何使用随机类在数组列表中找不到选择号?

java - 在多个文本文件中查找常用词

java - 注册 Java 事件时,通常是否允许重复的监听器?

java - 在 Android Eclipse 中编辑代码 - 如何最好地记录/折叠结束}

对带有输入的方法进行 Java 单元测试

mysql - JSONB在mysql中可用的数据类型?

mysql - 是否可以在MySql触发器中将表名导出为 "NEW.<TABLE FEILD>"?