在java列表中添加许多双类型参数
编辑:Thanx,我的麻烦已经解决了 我在为我的麻烦找一位律师。在我的练习中,我必须创建类“MyVector”(从Begging开始,我不能使用“Vector”类),它接受许多参数-双重类型。接下来,我要做一个运算(例如每个元素的乘法)。如何更改此代码以使此类的对象具有任意数量的类型参数在java列表中添加许多双类型参数,java,list,arraylist,Java,List,Arraylist,编辑:Thanx,我的麻烦已经解决了 我在为我的麻烦找一位律师。在我的练习中,我必须创建类“MyVector”(从Begging开始,我不能使用“Vector”类),它接受许多参数-双重类型。接下来,我要做一个运算(例如每个元素的乘法)。如何更改此代码以使此类的对象具有任意数量的类型参数 import java.util.Arrays; import java.util.List; public class Wektor<T> { private List<T>
import java.util.Arrays;
import java.util.List;
public class Wektor<T> {
private List<T> myWektor;
public Wektor(T... argSet){
this.myWektor = Arrays.asList(argSet);
printWek();
}
public void printWek() {
for (T wek : myWektor) {
System.out.println(wek);
}
}
}
您可以为此使用泛型:
public class MyVector<T> {
public List<T> myWektor;
public MyVector(T... argSet){
this.myWektor = Arrays.asList(argSet);
}
}
公共类MyVector{
公共列表myWektor;
公共MyVector(T…argSet){
this.myWektor=Arrays.asList(argSet);
}
}
然后用double或任何你想要的东西初始化它
MyVector<Double> foo = new MyVector<Double>(11.1, 12.1, 45.0);
MyVector<String> bar = new MyVector<String>("baz", "yo");
MyVector foo=新的MyVector(11.1,12.1,45.0);
MyVector条=新的MyVector(“baz”、“yo”);
列表是一种类型,它接受一个泛型参数,您可以将其解释为类型引用。基元类型没有类型引用,因此不能作为一个基元类型进行传递。在java中,primitve类型是用小写字母编写的,比如double
,int
等等。但是每个原语都有一个单独的实现,它们是用大写字母编写的,所以只需传递Double
,而不是原语
公共类MyVector{
公共列表myWektor;
公共MyVector(双…参数集){
this.myWektor=Arrays.asList(argSet);
}
}
这听起来像是课堂作业。这里的目标可能是理解动态构建的列表是如何实现的,而不是试图在您自己的类中封装一个列表
假设
- “不要使用
Vector
”真正的意思是“不要使用Java集合”`
- 您的自定义集合将只接受基元双精度
- 您已经实现(或正在实现)了
add(double)
方法
考虑以下几点:
public MyVector(double... values) {
this(); // assuming you have a default constructor that does generic setup stuff
for (double value : values) {
add(value);
}
}
请注意,Arrays.asList..
生成一个固定大小的List
,该列表由创建它的数组支持。这意味着您永远无法更改MyVector
的增量/减小大小,因此您也可以使用数组。每次添加/删除元素时,您都需要构建一个新的列表
——在这种情况下,您还可以在内部使用数组。这还意味着JRE为您的参数创建的数组不会消失,除非您清理了MyVector
的实例,因为它会被保留以支持生成的List
您知道Java中的泛型吗?我不太明白你的问题。除了double之外,你想让向量采用任何类型吗?为什么要使用double数组的列表?
public MyVector(double... values) {
this(); // assuming you have a default constructor that does generic setup stuff
for (double value : values) {
add(value);
}
}