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