对自定义对象使用Java ArrayList

对自定义对象使用Java ArrayList,java,arraylist,Java,Arraylist,我需要使用ArrayList来计算文本文件中的单词并显示它们的频率。我想从创建“Word”对象的ArrayList开始。从那一点上说,我不应该有问题。我遇到的问题是在列表中添加对象时。我收到一个错误,指出“类型ArrayList中的方法add(Word)不适用于参数(字符串)” public ArrayList wordList=new ArrayList(); 字符串文件名,word; 整数计数器; 扫描仪读取器=空; 扫描仪=新的扫描仪(System.in); 公共无效分析文本(){ Sys

我需要使用ArrayList来计算文本文件中的单词并显示它们的频率。我想从创建“Word”对象的ArrayList开始。从那一点上说,我不应该有问题。我遇到的问题是在列表中添加对象时。我收到一个错误,指出“类型ArrayList中的方法add(Word)不适用于参数(字符串)”

public ArrayList wordList=new ArrayList();
字符串文件名,word;
整数计数器;
扫描仪读取器=空;
扫描仪=新的扫描仪(System.in);
公共无效分析文本(){
System.out.print(“请指明要分析的文件(包括路径):”;
fileName=scanner.nextLine();
试一试{
reader=新扫描仪(新文件输入流(文件名));
}
catch(filenotfounde异常){
System.out.println(“找不到文件。程序现在将退出。”);
系统出口(0);
}
while(reader.hasNext()){
word=reader.next().toLowerCase();
添加(word);
计数器++;
}
}
公共类词{
字符串值;
整数频率;
公共字(字符串v){
值=v;
频率=1;
}
}

wordList
是一个由
“Word”
对象组成的数组。但是在第17行

wordList.add(word);
您正在向数组中添加另一种类型的内容(字符串)

注意有一个对象类型,名为
“Word”
(大写),另一个变量名为
字符串类型的“word”
(小写)


您正在向数组列表中添加字符串
“word”
,但在这种情况下,您只能将对象“word”添加到name
wordList
数组列表中

wordList
是一组
“Word”
对象。但是在第17行

wordList.add(word);
您正在向数组中添加另一种类型的内容(字符串)

注意有一个对象类型,名为
“Word”
(大写),另一个变量名为
字符串类型的“word”
(小写)


您正在向数组列表中添加字符串
“word”
,但在这种情况下,您只能将对象“word”添加到name
wordList
数组列表中

您需要添加Word对象而不是字符串:

word = reader.next().toLowerCase();
Word myNewWord = new Word(word); /*Generates a Word Object using your constructor*/
wordList.add(myNewWord);
counter++

希望有帮助。

您需要添加Word对象而不是字符串:

word = reader.next().toLowerCase();
Word myNewWord = new Word(word); /*Generates a Word Object using your constructor*/
wordList.add(myNewWord);
counter++

希望有帮助。

您需要将Word对象添加到列表中。但您正在分配一个从扫描仪读取的字符串。您需要创建一个Word对象


我认为,你计算单词的方法是错误的。您使用了错误的数据结构。Hashmap更适合这种情况。您可以将单词指定为键,并将单词计数作为值

您需要将Word对象添加到列表中。但您正在分配一个从扫描仪读取的字符串。您需要创建一个Word对象


我认为,你计算单词的方法是错误的。您使用了错误的数据结构。Hashmap更适合这种情况。您可以将单词指定为键,并将单词计数作为值

不要在ArrayList中添加字符串!按预期添加一个
Word
对象。事实上,错误消息以一种不易混淆的方式准确地告诉您错误所在。一定要批判性地阅读这些信息,因为它们是你的问题及其解决方案的关键
您可能应该重命名
单词
类名或
单词
字段名。字段名
rawValue
stringValue
会使代码更容易阅读,错误更容易发现,因为字符串对象不是Word对象请勿将字符串添加到ArrayList!按预期添加一个
Word
对象。事实上,错误消息以一种不易混淆的方式准确地告诉您错误所在。一定要批判性地阅读这些信息,因为它们是你的问题及其解决方案的关键
您可能应该重命名
单词
类名或
单词
字段名。字段名
rawValue
stringValue
会使代码更容易阅读,错误更容易发现,因为String对象不是Word对象