在java中搜索数组中的元素

时间:2012-12-06 22:12:01

标签: java

我想知道我应该使用什么样的方法来搜索数组中的元素以及存储返回值的数据结构

例如,txt文件包含以下

  

123名称线月亮夜桌
  124笑哭狗
  123报价线制作宠物表
  127行数组你好表

并且搜索元素是行+表 我把每一行都读成一个字符串,然后用空格溢出

输出应该是这样的

  

123 2(ID 123出现两次,包含搜索元素)
  127 1

我想知道一些什么样的方法来搜索数组中的元素以及用于存储返回值的数据结构(ID和发生的数量。我在想hashmap)

2 个答案:

答案 0 :(得分:0)

阅读文本文件并存储以ArrayList<String>中的表结尾的每一行。然后对ArrayList<String>中的每个元素使用contains。将结果存储在HashMap<key,value>中,其中键为ID,值为Integer,表示ID出现的次数。

答案 1 :(得分:0)

首先,我会继续逐行阅读文件,除此之外别无他法。

其次,要选择要保存的行,您不需要进行拆分(假设:它们都以(空格)表结束)。您可以使用以下方式获取它们:

if (line.endsWith(" table"))

然后,我建议使用Map<String, Integer>数据类型来存储您的信息。这样,您就可以获得表(键)的编号以及在文件中找到的次数(值)。

Map<String, Integer> map = new HashMap<String, Integer>();
....reading file....
if (line.endsWith(" table")) {
    String number = line.substring(0, line.indexOf(" "))
    if (!map.containsKey(number)) {
        map.put(number, 1);
    } else {
        Integer value = map.get(number);
        value++;
        map.put(number, value);
    }
}