将数组更改为数组列表

时间:2017-02-25 17:08:50

标签: java arrays arraylist

需要为行数制作一个数组列表,我对如何做到这一点感到有些困惑。

这是我的代码。

import java.util.ArrayList;
import java.util.Scanner;

public class Theatre {
//Number of rows in the theatre
public static final int NUMBER_ROWS = 10;
//Number of seats that are in each row
public static final int NUMBER_OF_SEATS_IN_ROW = 15;
private Seat[][] seat = new Seat[NUMBER_ROWS][NUMBER_OF_SEATS_IN_ROW];



public Theatre(){
    for(int x=0;x<seat.length;x++){
        for(int y=0;y<seat.length;y++){
            seat[x][y] = new Seat();

            if(x<5){ // If row is less than 5, set price of seat to 100
                seat[x][y].setPrice(100);
            }else{ // If row is not less than 5, set price to 70
                seat[x][y].setPrice(70);
            }
        }
    }
}


/**
 * This method prompts for row and seat number and reserves it under a name if it is not already reserved
 */
public void reserveSeat(){
    Scanner input = new Scanner(System.in);
    int row;
    int seat;
    //Gathering row number with validation
    do{
        System.out.print("Please select row: ");
        row = input.nextInt();
        row--;
    }while(row<0||row>=NUMBER_ROWS);
    //Gathering seat number with validation
    do{
        System.out.print("Please select seat: ");
        seat = input.nextInt();
        seat--;
    }while(seat<0||seat>=NUMBER_OF_SEATS_IN_ROW);

    if(this.seat[row][seat].isSold()){ // If seat is reserved, display message
        System.out.println("This seat is reserved");
    }else{ // If seat is not reserved, prompt for name and reserve it
        System.out.print("Please enter your name to reserve seat: ");
        this.seat[row][seat].setReservedBy(input.next());
        this.seat[row][seat].setSold(true);
    }
}
/**
 * This method displays all the seats and gives a visual representation of which seats are reserved
 */
public void showReservations(){
    String output = "";
    for(int x=0;x<seat.length;x++){
        for(int y=0;y<seat[x].length;y++){
            if(seat[x][y].isSold()){ // If seat is sold, append "x"
                output += "x ";
            }else{ // If seat is not sold, append "o"
                output += "o ";
            }
        }
        output += "Row "+(x+1)+"\n"; // Append newline character when row is complete
    }
    System.out.println(output);
}

/**
 * This method calculates the total value of seats sold and displays it
 */
public void showTotalValue(){
    double totalValue = 0;
    for(int x=0;x<seat.length;x++){
        for(int y=0;y<seat[x].length;y++){
            if(seat[x][y].isSold()){ // If seat is sold, add price of seat to totalValue
                totalValue += seat[x][y].getPrice();
            }
        }
    }
    System.out.println("The total value of seats sold is $"+totalValue);
}
}

2 个答案:

答案 0 :(得分:0)

标题中的问题是“如何将数组转换为数组列表”。这是将数组转换为数组列表并返回数组的示例。我们假设您已经设置了tagArray。

    //get String tagArray
    String[] tagArray = getTagArray();

    //convert to array list
    List<String> tempArrayList = new ArrayList<>(Arrays.asList(tagArray));

    //convert back to string array
    String[] tagArray2 = new String[tempArrayList.size()];
    for (int i=0; i<tempArrayList.size(); i++) teagArray2[i] =tempArrayList.get(i);

答案 1 :(得分:0)

您可以像这样定义多维java -jar jhipster-registry.war ArrayList 并使用三种方法ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();添加新数字,从数组中获取值或更新值。

例如:

array.add(input value), array.get(index), array.set(index, value)