Java 创建和测试向量的语法是什么样的?[级别:新手]
我正在学习Java,希望创建一个向量类来理解异常和数组。在我的例子中,我首先使用双数组 我为我的类实现了两个构造函数。一个用于长度,一个用于数组 可变长度包含向量的长度 实现Get()和set()是为了读取或更改值 实现了Minimum()、maxium()和average()以获取数组的所需值 toString()应将向量打印为字符串 到目前为止我的代码Java 创建和测试向量的语法是什么样的?[级别:新手],java,arrays,vector,Java,Arrays,Vector,我正在学习Java,希望创建一个向量类来理解异常和数组。在我的例子中,我首先使用双数组 我为我的类实现了两个构造函数。一个用于长度,一个用于数组 可变长度包含向量的长度 实现Get()和set()是为了读取或更改值 实现了Minimum()、maxium()和average()以获取数组的所需值 toString()应将向量打印为字符串 到目前为止我的代码 public class MyVector { //lenght of the vector public final i
public class MyVector {
//lenght of the vector
public final int l;
//array representing the vector
private double[] arr;
// Constructs vector.
public MyVector(int l) {
this.l = l;
arr = new double[l];
}
// Constructs vector from existing array
public MyVector(double[] array) {
l = array.length;
// copy]
arr = new double[l];
for (int i = 0; i < l; i++)
arr[i] = array[i];
}
//gets value at the given index.
public double get(int index) {
return arr[index];
}
// Sets value at the given index.
public double set(int index, double value) {
}
// Returns the minimal value in the vector.
public double minimum() {
double minimum = get(0);
for (int i=1; i<arr.l; i++)
if (get(i)<minimum)
minimum = get(i);
return minimum; }
// Returns the maximal value in the vector.
public double maximum() {
double maximum = get(0);
for (int i=1; i<arr.l; i++)
if (get(i)>maximum)
maximum = get(i);
return maximum; }
// the average of all values in the vector
public double average() {
double sum = 0;
for (int i=0; i<arr.l; i++)
sum += get(i);
return sum/arr.l;
}
@Override
public String toString() {
return "[arr=" + arr.l
+ " min=" + min()
+ " max=" + maximum()
+ " avg=" + average();
}
}
公共类MyVector{
//向量长度
公共最终国际会议;
//表示向量的数组
私人双[]arr;
//构造向量。
公共MyVector(int l){
这个。l=l;
arr=新的双精度[l];
}
//从现有数组构造向量
公共MyVector(双[]数组){
l=数组长度;
//副本]
arr=新的双精度[l];
对于(int i=0;i 对于(inti=1;i,您在回复Mureinik的评论中所写的语句是可行的,但不清楚它们会给您带来什么,除了一系列长度不同的向量
如果您在问题中陈述了这个目标,您可以通过简单地创建一个测试类,其中包含一组测试方法和一个运行所有测试方法的main
方法,以一种相当基本的方式开始测试。例如,其中一个可能是:
public boolean testAverage(Vector v, double expected) {
double computed = v.average();
boolean passed = expected == computed;
if (!passed) {
System.err.printf("Incorrect average for %s; expected %f, got %f\n",
v, expected, computed);
}
return passed;
}
在某种程度上,你会想了解JUnit,你可以通过搜索找到很多关于JUnit的教程。它是一个为Java类编写测试的完整框架。但是对于一个自诩为新手的人来说,在你对该语言更加熟悉之前,它可能需要承担很多工作。因为你有动力编写测试,这是值得称赞的你是在问如何创建一个MyVector
的实例吗?我不确定。我只是想创建一个向量数组,但我不明白它是如何工作的。是否有类似于vector[]v;v=new vector[5];v[0]=new vector(2);v[1]=new vector(5);v[2]=new vector(6);v[3]=新向量(4);v[4]=新向量(9)?我感兴趣的是查找数组的最高值,以及最低值和平均值。通常是查找、JUnit和Java集合。您不需要单独存储数组长度。在Java中,您只需执行arr.length即可获得它,就像在本代码中的某些地方一样。我只想测试我的方法。下面是一个结果应该是什么样的示例:。我想要一个具有以下值的向量:2.0、5.0、6.0、4.0和8.0。向量数组的最小值为2.0,最大值为8.0,平均值为5.0。如何创建该数组并打印方法的测试结果?嗨,也许我应该更具体一些。我想要一个向量使用以下值:2.0、5.0、6.0、4.0和8.0。向量数组的最小值为2.0,最大值为8.0,平均值为5.0。我知道这不是向量的常用用法,但我想了解数组。在我的向量类工作后,我考虑实现一个矩阵类。感谢您的回答和指导他在胡闹。