二维数组,可以容纳多个值,没有限制



我是相当新的java目前工作在一个不太简单的web浏览器应用程序中,我想记录一个永久的历史记录文件与一个2D数组设置与3列包含"日期查看","URL", "多少次此URL已被查看之前"。

目前我有一个临时的解决方案,只保存"URL",这也用于"后退,前进"的功能使用数组列表。

private List tempHistory = new ArrayList();

我正在阅读Java文档,但我不能把一个解决方案放在一起,除非我错过了明显的二维数组没有像Python那样灵活的数组列表?

从你的描述听起来不像你需要一个2D数组。你只有一个维度——但是复杂的数据类型,对吧?

所以定义一个HistoryItem类或具有Date属性的东西用于查看的日期,URL用于URL, int用于查看数。

那么你只是想要一个List<HistoryItem> history = new ArrayList<HistoryItem>()

我不认为你真的想要一个2D数组的原因是,它只能保存一种数据类型,你显然有几个数据类型在这里工作,像日期和计数。但是如果你真的想要一个类似于表的抽象,可以试试Guava的Table。

不,Java中没有内置的2D数组类型(除非你使用原始数组)。

可以只是使用列表的列表(List<List>) -然而,我认为它几乎总是更好的使用自定义类型,你把列表。在您的例子中,您将创建一个类HistoryEntry(包含"查看日期"、URL等字段),并使用List<HistoryEntry>。这样,您就可以获得适当类型给您带来的所有好处(类型检查、IDE中的补全、将方法放入类中的能力等)。

那么您打算如何浏览历史呢?如果你想在以后搜索每个url的历史记录,那么ArrayList方法可能不是很有效。

我更喜欢用URL作为键的Map。

Map<Url,UrlHistory> browseHistory = new HahMap<Url,UrlHistory> ();

UrlHistory将包含您想与url(如no)关联的所有字段。

相关内容

  • 没有找到相关文章

最新更新