如何使用`toArray()`将linkedlist转换为数组? [英] How to convert linkedlist to array using `toArray()`?

查看:412
本文介绍了如何使用`toArray()`将linkedlist转换为数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道如何将双打链表转换为数组。请帮我找到错误。

I do not know how to convert a linked list of doubles to array. Please help me find the error.

import java.util.*;
public class StackCalculator {


  private   LinkedList<Double> values;
  double value1 , value2 ;

  public StackCalculator()
  {
     values = new LinkedList<Double>();
  }


    void push(double x)
    {
         values.addFirst(x);
    }
    double pop()
    {
       return values.removeFirst();
    }
    double add()
    {
        value1=pop();
        value2=pop();
        return (value1 + value2);
    }

    double mult()
    {
        value1=pop();
        value2=pop();
        return (value1 * value2);
    }


    double[] v = new double[10];
    double[] getValues()
    {
        return   values.toArray(v);
    }

}


推荐答案

列表#toArray() 列表< Double> 返回 Double [ ] Double [] double [] 不同。由于数组是对象而不是基元,因此 autoboxing 规则不适用,也不适用于此处。

The List#toArray() of a List<Double> returns Double[]. The Double[] isn't the same as double[]. As arrays are objects, not primitives, the autoboxing rules doesn't and can't apply here.

使用 Double [] 代替:

Double[] array = list.toArray(new Double[list.size()]);

...或创建 double [] 你自己用循环:

...or create double[] yourself using a simple for loop:

double[] array = new double[list.size()];
for (int i = 0; i < list.size(); i++) {
    array[i] = list.get(i); // Watch out for NullPointerExceptions!
}

这篇关于如何使用`toArray()`将linkedlist转换为数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆