Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Arraylist - Fatal编程技术网

在java列表中添加许多双类型参数

在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>

编辑:Thanx,我的麻烦已经解决了

我在为我的麻烦找一位律师。在我的练习中,我必须创建类“MyVector”(从Begging开始,我不能使用“Vector”类),它接受许多参数-双重类型。接下来,我要做一个运算(例如每个元素的乘法)。如何更改此代码以使此类的对象具有任意数量的类型参数

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