Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java双数组列表_Java_Arraylist_Double - Fatal编程技术网

Java双数组列表

Java双数组列表,java,arraylist,double,Java,Arraylist,Double,有没有办法用double类型定义ArrayList?我两个都试过了 ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3); ArrayList list=新的ArrayList(1.38,2.56,4.3); 及 ArrayList list=新的ArrayList(1.38,2.56,4.3); 第一个代码显示构造函数ArrayList(double,double,double)未定义,第二个代码显示doubleArr

有没有办法用
double
类型定义
ArrayList
?我两个都试过了

ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
ArrayList list=新的ArrayList(1.38,2.56,4.3);

ArrayList list=新的ArrayList(1.38,2.56,4.3);
第一个代码显示构造函数
ArrayList(double,double,double)
未定义,第二个代码显示
double

ArrayList list=新的ArrayList(1.38,2.56,4.3)之后需要维度;
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
需要更改为:

List<Double> list = new ArrayList<Double>();
list.add(1.38);
list.add(2.56);
list.add(4.3);
List List=new ArrayList();
增加(1.38);
增加(2.56);
列表。添加(4.3);

您可以使用Arrays.asList获取一些列表(不一定是ArrayList),然后使用addAll()将其添加到ArrayList:

new ArrayList<Double>().addAll(Arrays.asList(1.38L, 2.56L, 4.3L));
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( new Supplier<ArrayList<Double>>() {
      public ArrayList<Double> get() {
        return( new ArrayList<Double>() );
      }
    } ) );
newarraylist().addAll(Arrays.asList(1.38L、2.56L、4.3L));
如果您使用的是Java6(或更高版本),还可以使用获取另一个列表的ArrayList构造函数:

new ArrayList<Double>(Arrays.asList(1.38L, 2.56L, 4.3L));
newarraylist(Arrays.asList(1.38L、2.56L、4.3L));
试试这个:

List<Double> list = Arrays.asList(1.38, 2.56, 4.3);
试试这个

ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3));
ArrayList numb=新的ArrayList(Arrays.asList(1.38,2.56,4.3));

您遇到了一个问题,因为您无法构造
数组列表并同时填充它。您需要创建它,然后手动填充它,如下所示:

ArrayList list = new ArrayList<Double>();
list.add(1.38);
...
试试这个:

 List<Double> l1= new ArrayList<Double>();
 l1.add(1.38);
 l1.add(2.56);
 l1.add(4.3);
List l1=new ArrayList();
l1.增加(1.38);
l1.增加(2.56);
l1.增加(4.3);
使用

或不可变列表

ImmutableList.of(1.2, 5.6, 10.1);
double[]arr=新的double[]{1.38,2.56,4.3};
ArrayList list=DoubleStream.of(arr).boxed().collect(
收集器。toCollection(新供应商(){
公共ArrayList get(){
return(newarraylist());
}
} ) );
1“不必要的复杂”是指在将其元素添加到ArrayList之前,首先创建一个不可修改的列表

2) 解决方案完全符合以下问题:“有没有办法用double类型定义ArrayList?”

双重类型:

double[] arr = new double[] {1.38, 2.56, 4.3};
ArrayList:

new ArrayList<Double>().addAll(Arrays.asList(1.38L, 2.56L, 4.3L));
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( new Supplier<ArrayList<Double>>() {
      public ArrayList<Double> get() {
        return( new ArrayList<Double>() );
      }
    } ) );
ArrayList list=DoubleStream.of(arr).boxed().collect(
收集器。toCollection(新供应商(){
公共ArrayList get(){
return(newarraylist());
}
} ) );
…这将创建与Java 1.8短格式相同的紧凑快速编译:

ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( ArrayList::new ) );
ArrayList list=DoubleStream.of(arr).boxed().collect(
collection(ArrayList::new));

甚至更好:
List doubleList=new ArrayList()。参考:谢谢。我知道我错过了什么。每个人的答案都有帮助,但将类型改为List就成功了。不返回不可修改的列表。它返回一个固定大小的列表。您可以
设置
元素,但不能
添加
删除
@Jeffrey感谢您的发布!我从未意识到。。。我一直认为它是不可修改的,因为当我试图添加时它爆炸了。我从未尝试过通过设置修改。答案已更新。干杯,我不明白。。。我能解释一下为什么@Rohan Salunkhe和voidHead的答案不是这个案例中最好的答案吗?@luke可能是因为Rohan的答案是我答案的一部分的精确副本(贴在我的后面),但是没有任何解释,voidHead的overs(IMHO不雅)多行解决方案,然而,我的答案中的两种方法都是单行线。这个答案没有任何解释,而且它似乎是解决问题的一种不必要的复杂方式。欢迎这样做,在你的答案中添加一些解释总是一个好主意
double[] arr = new double[] {1.38, 2.56, 4.3};
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( new Supplier<ArrayList<Double>>() {
      public ArrayList<Double> get() {
        return( new ArrayList<Double>() );
      }
    } ) );
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( ArrayList::new ) );