list.add不使用ArrayList

时间:2013-05-06 14:30:31

标签: java collections arraylist

我正在尝试将文件中的整数添加到ArrayList中并且list.add不想工作。我只尝试了大约一千种不同的方法来编写这段代码。 list.add(s.next());行在Eclipse中出错,

  

The method add(Integer) in the type List<Integer> is not applicable for the arguments (String).

听起来我在某种程度上试图用一个只能用字符串完成的整数做一些事情,但是我需要它们保持整数,如果我没有一直在搜索,那么用Java来研究和填充我的脑袋连续5天我可能会理解这意味着什么。

我可以使用常规数组工作,但我的ArrayList集合真的很痛苦,我不确定我做错了什么。任何帮助将非常感激。

提前致谢。


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class MyCollection {
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main(String[] args)  {

        List<Integer> list = new ArrayList();

        //---- ArrayList 'list'
        Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt"));

        while   (s.hasNext())   {
            list.add(s.next());
        }
        s.close();

        Collections.sort(list);
        for (Integer integer : list){
            System.out.printf("%s, ", integer);
        }
    }

}

3 个答案:

答案 0 :(得分:3)

s.next()指的是返回String类型的方法。由于Java是强类型的,因此必须从用户返回整数或int类型。 s.nextInt()可以正常使用。

答案 1 :(得分:1)

您正尝试将String添加到Integer s。

列表中

s.next()将下一个标记作为字符串返回,显然无法将其添加到整数列表中。

答案 2 :(得分:1)

试试这个:

    List<Integer> list = new ArrayList<Integer>();

    //---- ArrayList 'list'
    Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt"));

    while   (s.hasNextInt())   {
        list.add(s.nextInt());
    }
    s.close();

    Collections.sort(list);
    for (Integer integer : list){
        System.out.printf("%s, ", integer);
    }

s.hasNextInt()检查来自扫描仪的下一个数据中是否存在整数。要将整数添加到整数列表中,必须使用返回整数但不是字符串的nextInt 抱歉我的英文不好