5

在我的计算机科学课程中,我们正在学习查找表。但是我们的老师没有在他发布的课程页面中提供任何示例,也没有在他提供的视频中提供任何示例。他所做的只是告诉我们它是什么,但他希望我们在下一个任务中使用它们。但他没有给我们举例说明如何做到这一点。在进入查找表之前,我们正在学习数组。有人可以

  1. 告诉我什么是查找表?(请详细说明?)
  2. 提供一些查找表的示例?我们应该使用数组吗?
4

4 回答 4

10

您可以使用映射来存储键/值对并通过其键查找值:

Map<Integer, String> map = new HashMap<>();
map.put(1, "Foo");
map.put(2, "Bar");
System.out.println(map.get(1)); // prints Foo
于 2013-02-27T14:19:49.623 回答
3

如果您应该使用数组,那很好而且简单。

int[] numbers = new int[5] // Initialise a new array with 5 "spaces".
for(int x = 0; x < 5; x++)
{
    numbers[x] = x;
    // This will populate the array with 0,1,2,3 and 4.
}

现在要访问这些数字之一,您可以使用它的索引。IE

int value = numbers[3]; // Will return 3.

所以你已经通过使用它的索引作为“键”来访问数组中的值。

于 2013-02-27T14:22:21.577 回答
2

在我的理解中,查找表是一种使用给定“键”获取“值”的方法,它比迭代搜索快得多:即:

for(int x=0; x < 10; x++){
    if( x == n ) {
        return x;
    }
}

这将不得不搜索(最多)10 的 1/2 以找到“n”的匹配值。使用“lookupTable”,您可以直接访问所需的值,而无需使用它的“键”进行迭代。

假设您正在寻找给定 mySql 数据类型的 Java 变量类型。你可以使用地图。

Map<String, String> lookUpTable = new Map<>();
lookUpTable.put( "VARCHAR", "String" );

然后您可以在 Java 中找到“VARCHAR”数据类型的转换值,它将是

lookUpTable.get("VARCHAR"); // This would give you "String".
于 2016-11-25T11:58:17.437 回答
0

我知道你问这个问题已经很长时间了,我相信你成功地完成了你的任务。但是,我将与像我一样想知道 alookup table是什么的每个人分享我的答案。

Lookup table它只是一个数组。

查找表(数组)它在提供我们需要的数据方面非常快O(1)。想象一下它就像一个包含两列的表格。第一列是键/索引,第二列是值/数据。我们可以通过index直接访问我们需要的数据。

于 2022-03-03T12:03:39.360 回答