为什么它在将向量的项目复制到int数组时显示不兼容的类型



我正在编写一个示例代码,以接受用户提供的多个整数输入,并将其存储在向量列表中,然后将向量的项目复制到int array但是它在 array [a] = list.elementat(a);

中显示语法错误
   import java.util.Vector;
import java.io.*;
public class HelloWorld{
 public static void main(String []args)throws IOException{
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Vector list =new Vector();
while(true)
{
    String s=in.readLine();
    if(s.equals(""))
      break;
    int i=Integer.parseInt(s);
    Integer item=i;//autoboxing initialization of Integer object
    list.addElement(item); //adding to the list till user gives input
 }
 int array[]=new int[(int)list.size()];
 for(int a=0;a<array.length;a++)
   array[a]=list.elementAt(a);//Error is show here
   System.out.print(java.util.Arrays.toString(array));
    }
 }

如果您还有其他方法,请分享。

您应该将元素投放到整数:

array[a]=(Integer)list.elementAt(a);

或避免使用原始向量类型,并指定要放入向量的元素的类型:

Vector<Integer> list =new Vector<>();

使用RAW向量列表时,list.elementAt(a)返回Object。您可以将任何参考类型添加到您的列表中,因此可以自动将元素施加到Integer(或INT)。

您需要将值投放给整数。如果您使用Vector<Integer>代替Vector,则可以。

   BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
             Vector list =new Vector();
             while(true)
             {
                 String s=in.readLine();
                 if(s.equals(""))
                   break;
                 int i=Integer.parseInt(s);
                 Integer item=i;//autoboxing initialization of Integer object
                 list.addElement(item); //adding to the list till user gives input
              }
              int array[]=new int[(int)list.size()];
              for(int a=0;a<array.length;a++)
                array[a]=(int) list.elementAt(a);//Error is show here
                System.out.print(java.util.Arrays.toString(array));
                 }

最新更新