【问题标题】:changing arraylist to array in java在java中将arraylist更改为array
【发布时间】:2020-06-17 06:08:43
【问题描述】:

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

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);

【问题讨论】:

标签: java list arraylist


【解决方案1】:

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

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

改变

ArrayList li = new ArrayList<>();

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

【讨论】:

    【解决方案2】:

    您没有在声明中给出 ArrayList 的类型。所以,这相当于ArrayList&lt;Object&gt;,这意味着任何类型的对象都可以添加到arraylist。有两种方法可以解决此问题。

    1.在 arraylist 声明中声明类型。

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 2013-10-08
      • 2012-04-13
      • 2016-05-11
      • 2016-03-01
      • 2018-04-29
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      相关资源
      最近更新 更多