【发布时间】:2016-06-08 12:52:10
【问题描述】:
我有一个在程序开始时加载的集合,我理所当然地认为我用作值的字符串数组对于所有条目将始终具有相同的长度,而且它至少包含 1价值。
从这些条目中,我需要获取我使用的数组的大小。截至目前,我正在这样做:
Map<String, String[]> people = new HashTable<>();
people.put("miao", new String[]{"bau","cip","muu"});
people.values().iterator().next().length; //returns 3
有没有更好的方法?
【问题讨论】:
-
这就够了,除非你能在将第一个数组值放入 Map 之前获得该长度。
-
我应该删除问题吗?是格式错误还是什么?我在这个网站上很难理解投票...
-
您可能应该使用
HashMap而不是哈希表(注意 little-'t')。Hashtable已同步。HashMap不是而且通常是您想要的(以避免同步成本)。对于大多数用途,Hashtable是旧新闻。您是否考虑过使用List<String>而不是String[]。同样,这通常是首选。在大多数情况下,您应该将数组视为 Java 的遗留(或优化)特性。 -
@Paul 关于同步的事情,我可能真的需要它,所以这就是我使用它的原因。根据列表...好吧,我没有考虑过。你读过你的最后一句话吗? List 是不是有点像一个包装器来存储一个简单的拆分字符串?
-
@Vale 这只是一个反对票,没什么好担心的(除非反对票的人费心给出反对票的充分理由)。
标签: java arrays dictionary hashtable