-1

我有一个应该充满整数的数组列表的数组列表,但是当我尝试编译程序时,我收到一条错误消息,指出由于操作数类型 Object 和 Int 不兼容,它无法向其中添加数字。任何帮助,将不胜感激!

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class main{
    public static void main(String[] args){

        int ntt = 20;
        ArrayList<Integer> Factors = new ArrayList<Integer>();
        ArrayList<List> FactorsList = new ArrayList<List>();
        ArrayList<Integer> Occurences = new ArrayList<Integer>();

        System.out.println("Smallest Multiple of Numbers 1-20\n---------------------------------\n\nSearching...");


        for(int i = 2; i <= ntt; i++){

            FactorsList.add(isPrime(i));

        }

        for(int i = 2; i <= ntt; i++)
        for(int j = 0; j < FactorsList.size(); j++)
        for(int k = 0; k < FactorsList.get(j).size();k++){

            if(FactorsList.get(j).get(k)==i){
                Occurences.set(i, i+1);
            }

        }

    }

    static List<Long> isPrime(long num){
        List<Long> ar = new ArrayList<Long>();
        for(long count=2;count<=num;count++){
                while(num%count == 0){
                ar.add(count);
                num /= count;
            }
        }
        return ar;
    }
}
4

1 回答 1

0

首先,java中类名以大写字母开头,字段名以小写字母开头。我建议你使用一些 IDE 进行开发,你会得到各种提示/警告/错误你做错了什么。

使用 aList<Long>因为您正在使用long值。您正在使用泛型,请正确使用它们:ArrayList<List<Long>> factorsList = new ArrayList<List<Long>>();

由于列表为空,因此您在occurences.set(i, i + 1);不存在的索引处分配了一些东西!

话虽如此,我的猜测是 aMap对你来说是更好的数据结构。看一下java 附带的集合。

于 2013-09-28T21:53:28.303 回答