简体   繁体   English

如何用值填充二维数组?

[英]How do I populate a 2D array with values?

So I'm making an airline reservation program and I'm trying to populate a 2D array with seat numbers and changes per airline company, this is what I have so far所以我正在制定一个航空公司预订计划,我正在尝试用每个航空​​公司的座位号和变化来填充一个二维数组,这就是我到目前为止所拥有的

public class BoeingSeatMap extends SeatMap{
protected int row;
protected char column;
SeatType seatType;
Seat s1;

public void intializeSeatMap(){
    this.row = 10;
    this.column =  7;
    char [][] seats = new char[row][column];
    for(int i = 0; i < seats.length; i++){
        for(int y = 0; y < seats[i].length; y++){
        //  seats[i][y] = s1.reserved(false);

        }
    }
}

}

This airline company has 10 rows and 7 columns, the first 4 rows are also first class and the layout is 2-3-2 (window, aisle, aisle, middle, aisle, aisle, window)这家航空公司有10行7列,前4行也是头等舱,布局是2-3-2(窗,过道,过道,中间,过道,过道,窗)

I want to have the array populated with 1A, 1B etcetc.我想让数组填充 1A、1B 等。

You can't make a char array to store such data since it can only store a single character ('a','b','c' etc).您不能创建一个字符数组来存储此类数据,因为它只能存储单个字符('a'、'b'、'c' 等)。 As mentioned above from resueman you have to choose another data type that can store much more information like String etc.正如上面从 resueman 中提到的,您必须选择另一种可以存储更多信息的数据类型,例如 String 等。

Or even better try making your own custom object since you have already SeatType and Seat.或者甚至更好地尝试制作自己的自定义对象,因为您已经有了 SeatType 和 Seat。

You should use a Seat[][] instead of a char[][] , which can hold all the data you want.您应该使用Seat[][]而不是char[][] ,它可以保存您想要的所有数据。

Here is a basic example:这是一个基本示例:

class Seat {

    private final String name;
    private final Type type;
    private boolean reserved = false;

    public Seat(String name, Type type) {
        this.name = name;
        this.type = type;
    }

    // ...Getters & Setters...

    public enum Type {
        Business,
        Economy;
    }
}

class BoeingSeatMap {
    private Seat[][] seats;

    public static final int rows = 10;
    public static final int collumns = 7;

    private static final String[] letters = { "A", "B", "C", "D", "E", "F", "G" };

    public void intializeSeatMap() {
        seats = new Seat[rows][collumns];

        for (int x = 0; x < seats.length; x++) {
            for (int y = 0; y < seats[x].length; y++) {
                String name = (x + 1) + letters[y];
                if(x < 4) { // first 4 rows are Business
                    seats[x][y] = new Seat(name, Seat.Type.Business);
                } else { // The rest Economy
                    seats[x][y] = new Seat(name, Seat.Type.Economy);
                }               
            }
        }
    }
}

Example output:示例输出:

[1A : Business, 1B : Business, 1C : Business, 1D : Business, 1E : Business, 1F : Business, 1G : Business]
[2A : Business, 2B : Business, 2C : Business, 2D : Business, 2E : Business, 2F : Business, 2G : Business]
[3A : Business, 3B : Business, 3C : Business, 3D : Business, 3E : Business, 3F : Business, 3G : Business]
[4A : Business, 4B : Business, 4C : Business, 4D : Business, 4E : Business, 4F : Business, 4G : Business]
[5A : Economy, 5B : Economy, 5C : Economy, 5D : Economy, 5E : Economy, 5F : Economy, 5G : Economy]
[6A : Economy, 6B : Economy, 6C : Economy, 6D : Economy, 6E : Economy, 6F : Economy, 6G : Economy]
[7A : Economy, 7B : Economy, 7C : Economy, 7D : Economy, 7E : Economy, 7F : Economy, 7G : Economy]
[8A : Economy, 8B : Economy, 8C : Economy, 8D : Economy, 8E : Economy, 8F : Economy, 8G : Economy]
[9A : Economy, 9B : Economy, 9C : Economy, 9D : Economy, 9E : Economy, 9F : Economy, 9G : Economy]
[10A : Economy, 10B : Economy, 10C : Economy, 10D : Economy, 10E : Economy, 10F : Economy, 10G : Economy]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM