Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DataSource接口的HashMap实现:nextRow()方法?_Java_Data Structures - Fatal编程技术网

Java DataSource接口的HashMap实现:nextRow()方法?

Java DataSource接口的HashMap实现:nextRow()方法?,java,data-structures,Java,Data Structures,我想实现一个DataSource接口(Java),它允许您从数据中获取nextRow()。我最初只想通过HashMaps实现数据存储,但是从底层数据结构中抽象出来,并提供前面提到的接口会很酷 这听起来是个好主意吗?为HashMap实现提供nextRow()方法似乎有些混乱-我想我需要在数据的集合视图上提供一个迭代器。我想我还需要提供一个resetIterator方法 要提供更多详细信息,请执行以下操作: 我认为newRow()方法将返回HashMap HashMap数据存储的实现将是HashM

我想实现一个
DataSource
接口(Java),它允许您从数据中获取
nextRow()
。我最初只想通过HashMaps实现数据存储,但是从底层数据结构中抽象出来,并提供前面提到的接口会很酷

这听起来是个好主意吗?为
HashMap
实现提供
nextRow()
方法似乎有些混乱-我想我需要在数据的集合视图上提供一个迭代器。我想我还需要提供一个
resetIterator
方法

要提供更多详细信息,请执行以下操作:

  • 我认为
    newRow()
    方法将返回
    HashMap
  • HashMap
    数据存储的实现将是
    HashMap
非常感谢您的任何想法和评论

接口确实通过、和方法公开迭代器。你可以在幕后使用其中一个来做你想做的事情


另一方面,每个数据行的HashMap开销很大。如果您可以提前修复一组列,那么使用列表(可能是ArrayList)甚至只是一个普通数组来表示每一行会便宜得多。

使用地图地图的具体原因是什么?地图列表听起来是一个更好的选择。基本上,我(在当前示例中)是从csv文件中获取数据,并且我希望每一行都能被某一数据段唯一地识别(或者是来自一列的数据,或者可能是几列的组合)。因此,这些行将作为HashMap返回,并且它们都将存储在一个HashMap中,id值作为键