【发布时间】:2014-10-17 21:34:45
【问题描述】:
我正在尝试访问在同一类中以不同方法创建的ArrayList。扫描仪方法从文本文件中提取数据。文本文件数据是这样出现的:123 12 1 43,有换行符...
目前,我的方法可以提取数据,但在该方法结束后无法编译。我最初将整个代码放在同一个方法中,并且效果很好。但是我想通过在这个类中创建一个新方法来返回最大值,然后创建一个tester 类来访问这个新方法。这是我现有的代码。或者如果有更好的解决方案。我全神贯注。
public class DataAnalyzer {
public DataAnalyzer(File data) throws FileNotFoundException
{
List<Integer> rawFileData = new ArrayList<>();
FileReader file = new FileReader("info.txt");
try (Scanner in = new Scanner(file)) {
while(in.hasNext())
{
rawFileData.add(in.nextInt());
}
}
}
public int getLargest(rawFileData){
int largest = rawFileData.get(0);
for (int i = 1; i < rawFileData.size(); i++){
if (rawFileData.get(i) > largest)
{
largest = rawFileData.get(i);
}
}
for (Integer element : rawFileData){
if (element == largest)
{
System.out.print("This is the Largest Value: ");
System.out.print(element);
}
}
}
}
【问题讨论】:
-
public int getLargest(rawFileData)?Type在哪里? -
Collections.max有什么问题吗?您需要阅读一些关于如何定义方法的基本 Java 教程——您的构造函数具有输入变量的类型参数;您的方法的类型参数在哪里? -
我对 Java 还很陌生,正在学习更多关于对象和编写访问方法的知识。所以我不确定我是否没有关注你的一些 cmets。
-
样式说明:您从
getLargest()内部调用rawFileData.get(i)。只有当 rawFileData 引用ArrayList时,您才会这样做。好的,在这个例子中它确实引用了一个ArrayList,但如果代码依赖 rawFileData引用一个ArrayList,那么它应该声明 作为 ArrayList,而不仅仅是List。这在一个大型的、不断发展的程序中很重要,其中一些其他程序员可能会更改构造函数以创建其他类型的 List,而没有意识到 List 的类型很重要。 -
我收到一个编译时错误是你所能提供的最无用的信息。唯一没有帮助的是我收到一个错误。此外,您发布了一个问题并得到了回答。完全改变问题并希望得到新的答案不仅是徒劳的,而且会使所有已经给出的答案无效——从而使问题对未来的读者毫无用处。我已经回复了你的问题。如果您想问另一个问题,问另一个问题。
标签: java class object methods arraylist