gpt4 book ai didi

java - 如何实现Hashmap/ArrayList的列表

转载 作者:行者123 更新时间:2023-12-02 07:47:53 30 4
gpt4 key购买 nike

大家好,我在尝试让它工作时遇到问题。基本上我想做的是读取包含此类数据的文本文件,该数据不完全相同但只是相似,并计算每行中每个字母出现的频率。此外,真实数据包含 0-255 之间的任何随机 ASCII。

一个例子是:

嗨,我是约翰。
我们要去 .4%2) &,.!米@ll

我想要的是在 map 列表中实现类似的东西

{H=3, i=3, ' '=3, t=1, h=2, s=2,...直到行尾 },
{W=1, e=2, ' '=4, a=1, r=1, g=2, o=1, i=1, n=1, .=2, 4=1, %=1....直到行尾},

所以它是一个 map 列表

我曾尝试研究类似的问题,但我在编码中能做的最接近的就是这个。

List <Map<String, Integer>> storeListsofMaps = new ArrayList<Map<String, Integer>>();
ArrayList <String> storePerLine = new ArrayList<String>();
String getBuf;

try {
FileReader rf = new FileReader("simpleTextCharDist.txt");
BufferedReader encapRF = new BufferedReader(rf);

getBuf = encapRF.readLine();

while (getBuf!=null){
storePerLine.add(getBuf);

getBuf = encapRF.readLine();
}

for (String index: storePerLine){
Map<String, Integer> storeCharAndCount = new HashMap<String, Integer>();

Integer count = storeCharAndCount.get(index);
storeCharAndCount.put(index, (count==null)?count = 1:count+1);

storeListsofMaps.add(storeCharAndCount);
}

System.out.println("StoreListsofMaps: "+ storeListsofMaps);

encapRF.close();
}

我知道这段代码不会执行我所描述的代码,但直到这一部分才被卡住。我显示的代码只会计算单词本身,而不是字符串中的每个字母。我尝试通过将字符串转换为 char[] 并再次将其转换回字符串来对字符串中的每个元素进行迭代计数,但效率非常低并且会产生很多错误。希望有好心人能够帮忙。

最佳答案

这是实现此目的的伪算法 -

  1. 使用文件 I/O 创建一个列表,其中包含 1 行作为列表中的 1 个元素
  2. 编写一个小辅助函数,它将:
    1. 获取字符串(代表步骤 1 中创建的列表中的元素)
    2. 迭代该行
    3. 创建字符和计数的映射。该映射应该是返回类型。
  3. 创建 Map<String,Map<String,Int>>其中第一个字符串是“Line1”、“Line2”等。第二个字符串是 char 值。内联编写的 Map 是从步骤 2 返回的 Map。

这应该有效。

关于java - 如何实现Hashmap/ArrayList的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583405/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com