有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用多维数组Java

大家好,正在做一个uni练习,需要创建一个多维数组来保存一些字符串。但是我对如何访问/声明变量有点困惑,因为当我分配变量时,我如何让程序知道我指的是哪个维度?最终目标是创建一个3乘3的数组,但我假设逻辑与2乘2相同,但我只需要知道如何访问我想要的数组。 提前感谢:)

    String[][] Albums = new String[5][10];
    String song1,song2,song3;
    String album1,album2,album3;
    album1 = "Best classic hits";
    album2 = "Best pop hits";
    album3 = "Best rock hits";
    song1 = "Greatest funk song";
    song2 = "Greatest pop song";
    song3 = "Greatest rock song";
    Albums[0][0] = album1;  
    Albums[1][0] = album2;
    Albums[2][0] = album3;

共 (3) 个答案

  1. # 1 楼答案

    首先将数组初始化为所需大小。这里你说你需要3x3,所以我假设数组是这样的:

    [[album, song0, song1], 
    [album, song0, song1], 
    [album, song0, song1]]
    

    因为用数组表示对象(例如(album, song0, song1)容易出错,我建议创建助手方法来管理数据结构访问。这些方法确保不会错误地重写错误的数组项

    static void setData(String[] data, String album, String song0, String song1) {
        setAlbum(data, album);
        setSong0(data, song0);
        setSong1(data, song1);
    }
    
    static String getAlbum(String[] data) {
        return data[0];
    }
    static void setAlbum(String[] data, String album) {
        data[0] = album;
    }
    
    static String getSong0(String[] data) {
        return data[1];
    }
    static void setSong0(String[] data, String song0) {
        data[1] = song0;
    }
    
    static String getSong1(String[] data) {
        return data[2];
    }
    static void setSong1(String[] data, String song1) {
        data[2] = song1;
    }
    ...
    
    String[][] data = new String[3][3];
    setData(data[0], "album 0", "album 0 song 0", "album 0 song 1");
    setData(data[1], "album 1", "album 1 song 0", "album 1 song 1");
    setData(data[2], "album 2", "album 2 song 0", "album 2 song 1");
    
  2. # 2 楼答案

    您正在创建一个5x10数组,是否要访问该数组以打印元素?只需创建一个嵌套for循环

    像这样

            for(i=0;i<=2;i++)
            {
                for(j=0;j<=2;j++)
                {
                    System.out.print(Number[i][j]+"\t");
                }
             }
    

    编辑阅读你的评论这是你想要的吗

        public static void main(String[] args)
    {
        String[][] Album = {
                {"Best classic hits ", "Best pop hits ", "Best rock hits "},
                {"Greatest funk song" , "Greatest pop song" , "Greatest rock song"}
        };
    
    
        System.out.println(Album[0][0] + Album[1][0]);
        System.out.println(Album[0][1] + Album[1][1]);
        System.out.println(Album[0][2] + Album[1][2]);
    
    }
    
  3. # 3 楼答案

    首先纠正这个问题:

    // To make the size 3 by 3
    String[][] Albums = new String[3][3];
    

    然后您可以像这样访问每个元素:

    for(int i = 0; i < Albums.length; i++) {
        for(int j = 0; j < Albums[i].length; j++ ) {
            System.out.println(Albums[i][j]);
        }
    }