java - 获取输入到 HashSet 后的数据读取顺序

标签 java mysql jdbc arraylist hashset

我从 MySQL 数据库获取数据,其中包含产品名称。我有两个数据库。一个数据库包含本地产品,而其他数据库则包含外国产品。我需要从两个数据库获取数据。

为了成功,我使用 JDBC 连接并检索数据并将其放入两个 arraylist 中。因为我想忽略重复项,所以我使用哈希集。我将这些 arraylist 输入到 hashset,然后再次取回不包含重复项的 arraylist

我知道HashSet没有排序方式,因此它会随着时间的推移而变化。我不希望这种情况发生。我想保持读取的数据顺序,就像删除重复项后一样。

我使用的示例代码:

    localProductHashSet.addAll(getLocalProduct);
    getLocalProduct.clear();
    getLocalProduct.addAll(localProductHashSet);
    Collections.sort(getLocalProduct);

最佳答案

尝试 SortedSetTreeSet如果你想使用Comparator或实现Comparable<T>在您的数据模型上使它们保持某种指定的顺序。

否则,请尝试 LinkedHashSet ,这将使您的对象保持插入的顺序。

关于java - 获取输入到 HashSet 后的数据读取顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728137/

相关文章:

java - 为什么是 Class.forName ('database driver' )?

java - 需要帮助对整数进行一些特定的格式化(java)

java - 如何连续读取时间?

MYSQL - 如果数字存在于另一个表中,则从 SQL 中的一个表中删除该数字

php - CodeIgniter 'where' 不工作

java - JPA:应用程序必须提供 JDBC 连接

java - 十六进制字符串到颜色名称

装有 Mac OS X 10.4 的 Mac PowerPC 上的 Java 6

php - 使用 Foreach 从数据库检索结果

java - 如何使用 jdbc 在 oracle 10g 中插入大型 clob 数据(> 4K 字符)