如何将向量从一个类返回到另一个类

时间:2019-04-16 13:57:48

标签: java arrays class

我正在尝试将数组与java一起使用,当我从类返回数组时,它会显示[I @ 7d4991ad(应该是地址),但是如何返回所有元素?

(顺便说一句,我总是把JavaScript和Java弄混了,我不知道是哪一次蚀,对不起)

基本上,我使用metod int []返回了向量的名称

public class TestVettori {

    private int vector[];
    private int length;

    //function input lengt
    public void setLength(int newLung) {
        if(newLung>=1) 
           length=newLung;      
    }

    //function input
    public void inputValue(int[] vett) {

        vector = new int [length];

        for(int i=0;i<length;i++) 
            vector[i]=vett[i];      
    }

    //function print array
    **public int[] getVector() {
        return vector;
    }** 
}
import java.util.Scanner;

public class ProgTestVettori {

    public static void main(String[] args) {
        Scanner in= new Scanner (System.in);

        int lung ;
        int vett[];

        TestVettori vector;

        System.out.println("Put the length of the array");
        lung = in.nextInt();

        vett = new int [lung];

        vector = new TestVettori();

        vector.setLength(lung);

        for(int i=0;i<lung;i++) {
            System.out.println("Input the"+(i+1)+" number");
            vett[i]=in.nextInt();
        }

        vector.inputValue(vett);


        **for(int i=0;i<lung;i++) {
            System.out.println("the "+(i+1)+"° number is"+vector.getVector());
        }**




        in.close();
    }
}

我粘贴了所有代码,因此您可以看到所有代码: 我把长度设成3 我输入数字,我应该从控制台获得数字,但是我得到了3次 [我@ 7d4991输入地址...

3 个答案:

答案 0 :(得分:0)

要在特定索引处获取数组的元素,您需要具有以下内容:

  <div *ngIf="SKILLS?.length > 0; else noItem">
    <div *ngFor="let skill of SKILLS | filter:skillGruppe">
      <div class="skill">
        <mat-accordion>
          <mat-expansion-panel>
            <mat-expansion-panel-header>
              <mat-panel-title>{{skill.skillname}}
              </mat-panel-title>
              <mat-progress-bar class="progress-bar" [value]="skill.skillwert"></mat-progress-bar>
              <mat-panel-description>
              </mat-panel-description>
            </mat-expansion-panel-header>
            <div>{{skill.skillBeschreibung}}</div>
          </mat-expansion-panel>
        </mat-accordion>
      </div>
    </div>
  </div>

,您应该调用此方法而不是getVector()。

另一个选择是将整个数组放在前面,并像这样循环遍历每个元素:

public int getElement(int index) {
    return vector[index];
}

答案 1 :(得分:0)

如果要打印数组的元素,则必须执行for循环。一种简化的方法是,可以将toString()方法添加到TestVettori类中。

public class TestVettori {

    private int vector[];
    private int length;

    //function input lengt
    public void setLength(int newLung) {
        if(newLung>=1) 
           length=newLung;      
    }

    //function input
    public void inputValue(int[] vett) {

        vector = new int [length];

        for(int i=0;i<length;i++) 
            vector[i]=vett[i];      
    }

    //function print array
    **public int[] getVector() {
        return vector;
    }** 

    public String toString() {
        String s = "";
        for (int i = 0; i < vector.length; i++) 
            s += (String)(vector[i]) + " ";
        return s;
    }

}

所以这意味着如果您这样打印数组:

System.out.println(vector);

它将打印您的数组。

答案 2 :(得分:0)

我认为您只是获得了Java对象ID(内部)。您必须遍历列表。我建议您使用foreach循环来完成。对于每个元素,您都会得到名称/长度或所要查找的内容!