【问题标题】:Most efficient way to compare two datasets and find results比较两个数据集并查找结果的最有效方法
【发布时间】:2014-08-07 23:54:38
【问题描述】:

如果我有两个来自 SQL 表的数据集,看起来像这样。其中表 A 包含给定项目的 3 个可能值,表 B 包含文件名的完整路径, 我有两个来自 SQL 表的数据集,看起来像这样。

TABLE A:
Column1    Column2        Column3
Value     SecondValue     ThirdValue
Value2    SecondValue2    ThirdValue2
Value3    SecondValue3    ThirdValue3

Table B:
Column1
PathToFile1\value.txt
PathToFile2\SecondValue2_ThirdValue.txt
PathToFile3\ThirdValue3_Value3.txt

我可以将任何表/列提取为文本,并且我将使用 Java 查找完整路径(表 B),其中包含(表 A)中一行中值的任意组合。 表 B 可以具有诸如 c:\directory\file.txt、c:\directory\directory2\filename.txt 或 c:\filename.txt 等值

在给定文件名的情况下,搜索路径最有效的方法是什么?

我有两个同事的想法,但我不确定它们是否是最佳解决方案。

1.将从表 B 解析的文件名和路径存储在哈希映射中,然后使用 A 中的值作为键查找路径。对 A 的每一列执行此操作。

2.按字母顺序排序并使用字母顺序进行二进制搜索。

澄清:

表 B 中文件的路径可以包含表 A 中列中的任何一个值。这就是它们之间的关系。输出最终必须在 Java 中运行,我想探索 Java 中的选项,因为知道 SQL 关联数据会更快。还在表格部分添加了一些信息。如果需要更多信息,请告诉我。

【问题讨论】:

  • 不知何故不清楚这些值究竟是如何相关的。您能否将Value SecondValue ThirdValue 替换为一些真实数据并将这些行相互关联?
  • 为什么不能在 SQL 查询本身中使用连接来完成?
  • 我也不明白
  • 抱歉,我想问一个棘手的问题,试图澄清一下。希望我添加的内容更清晰。
  • 另外,我知道我可以在 SQL 中做到这一点,如果需要,我正在寻找一种在 java 中做到这一点的方法。

标签: java performance processing-efficiency


【解决方案1】:

我发现这有助于我的回答,尽管不是对我的问题的具体回答。我认为使用本文中的信息可以获得最佳实践。

http://www.javacodegeeks.com/2010/08/java-best-practices-vector-arraylist.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多