Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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_Arrays_Multidimensional Array - Fatal编程技术网

Java 数组对象所有索引的值都相同

Java 数组对象所有索引的值都相同,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我有一个错误,当我使用在类中创建的print方法时,我的数组返回所有相同的值。我不知道为什么,它一定是不同的价值。有什么建议吗? 这是密码 主要类别: public class KmeanES { /** * @param args the command line arguments */ public static void main(String[] args) { Kmean coba= new Kmean();

我有一个错误,当我使用在类中创建的print方法时,我的数组返回所有相同的值。我不知道为什么,它一定是不同的价值。有什么建议吗? 这是密码

主要类别:

public class KmeanES {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Kmean coba= new Kmean();

        coba.filldata();
        coba.print()
    }
}
Kmean类:

public class Kmean {

double[][] datadummy = {{15.26, 14.84, 0.871}, {5.763, 3.312, 2.221},
    {14.88, 14.57, 0.881}, {5.554, 3.333, 1.018}, {4.956, 114.29, 14.09},
    {0.905, 5.291, 3.337}, {2.699, 4.825, 1}, {13.84, 13.94, 0.8955},
    {5.324, 3.379, 2.259}, {4.805, 1, 16.14}, {14.99, 0.9034, 5.658}};
//11 dummy data
Kmeandata data = new Kmeandata();
Kmeandata[] datafinal = new Kmeandata[11];


void filldata() {


    double[] temp = new double[3];
    for (int i = 0; i < 11; i++) {
        for (int j = 0; j < 3; j++) {
            temp[j] = this.datadummy[i][j];

        }
        this.data.setData(temp);
        this.datafinal[i]=this.data;
        datafinal[i].printdata();

    }
}

void print() {
    for (int i = 0; i < 11; i++) {
        this.datafinal[i].printdata();

    }
}
公共类Kmean{
double[]datadummy={{15.26,14.84,0.871},{5.763,3.312,2.221},
{14.88, 14.57, 0.881}, {5.554, 3.333, 1.018}, {4.956, 114.29, 14.09},
{0.905, 5.291, 3.337}, {2.699, 4.825, 1}, {13.84, 13.94, 0.8955},
{5.324, 3.379, 2.259}, {4.805, 1, 16.14}, {14.99, 0.9034, 5.658}};
//11虚拟数据
Kmeandata data=新的Kmeandata();
Kmeandata[]datafinal=新Kmeandata[11];
void filldata(){
双精度[]温度=新双精度[3];
对于(int i=0;i<11;i++){
对于(int j=0;j<3;j++){
temp[j]=this.datadummy[i][j];
}
此.data.setData(temp);
this.datafinal[i]=this.data;
datafinal[i].printdata();
}
}
作废打印(){
对于(int i=0;i<11;i++){
this.datafinal[i].printdata();
}
}
}

和Kmeandata类

public class Kmeandata {

String kelas;
public double[] data = new double[3];

public Kmeandata(String kelas, double[] data) {
    this.setKelas(kelas);
    this.setData(data);
}

public Kmeandata(double[] data) {
    this.setKelas(null);
    this.setData(data);
}

public Kmeandata() {
    this.setKelas(null);
    this.setData(null);
}

public String getKelas() {
    return kelas;
}

public void setKelas(String kelas) {
    this.kelas = kelas;
}

public double[] getData() {
    return data;
}

public void setData(double[] data) {
    this.data = data;
}

public void printdata() {
    double[] temp = new double[3];

    temp = this.getData();
    System.out.println("");
    for (int i = 0; i < 3; i++) {

        System.out.printf("|" + temp[i] + "|");
    }
}
公共类Kmeandata{
丝状海带;
公共双精度[]数据=新双精度[3];
公共Kmeandata(字符串kelas,双[]数据){
这是塞特凯拉斯(凯拉斯);
此.setData(数据);
}
公共Kmeandata(双[]数据){
this.setKelas(null);
此.setData(数据);
}
公共数据{
this.setKelas(null);
此.setData(null);
}
公共字符串getKelas(){
返回克拉斯;
}
公共无效集合(字符串集合){
this.kelas=kelas;
}
public double[]getData(){
返回数据;
}
公共void setData(双[]数据){
这个数据=数据;
}
public void printdata(){
双精度[]温度=新双精度[3];
temp=this.getData();
System.out.println(“”);
对于(int i=0;i<3;i++){
System.out.printf(“|”+temp[i]+“|”);
}
}

}

您传递的是对临时数组的引用,而不是副本。在外部for循环中移动temp的定义

for (int i = 0; i < 11; i++) { 
  double[] temp = new double[3];
  for (int j = 0; j < 3; j++) { 
    temp[j] = this.datadummy[i][j];
  }
  ...
}
for(inti=0;i<11;i++){
双精度[]温度=新双精度[3];
对于(int j=0;j<3;j++){
temp[j]=this.datadummy[i][j];
}
...
}