有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中将arraylist更改为array的列表

我是初学者。你能帮我找出以下程序中的错误吗

import java.util.*;
public class Main
{
    public static void main(String[] args) {
     ArrayList li = new ArrayList<>();
     li.add(1);
     li.add(2);
     li.add(3);

     System.out.println(li.get(1));

     int arr[] = new int[li.size()];
     for(int i=0; i<li.size(); i++)
     {
         arr[i] = li.get(i);
     }

     for(int item:arr)
     System.out.println(item);
    }
}

在执行上述程序时,我得到以下错误:

Main.java:23: error: incompatible types: Object cannot be converted to int
     arr[i] = li.get(i);

共 (2) 个答案

  1. # 1 楼答案

    您使用的是原始ArrayList,因此它包含Objects,而不是Integers。您不能将Object类型分配给int类型,因此当您试图将Object类型保存到int数组中时会出现错误

    将泛型类型参数传递给ArrayList,以便编译器知道li是包含IntegersArrayList

    改变

    ArrayList li = new ArrayList<>();
    

    ArrayList<Integer> li = new ArrayList<>();
    
  2. # 2 楼答案

    声明中没有给出ArrayList的类型。因此,这相当于ArrayList<Object>,这意味着任何类型的对象都可以添加到arraylist中。有两种方法可以解决这个问题

    1。在arraylist声明中声明类型

    ArrayList<Integer> li = new ArrayList<>();
    

    2。将从列表中获取的对象强制转换为int类型

    for(int i=0; i<li.size(); i++)
       {
           arr[i] = (int)li.get(i);
       }