Как сохранить новые значения моего массива при переходе в другой класс в intellij Java

#java #class #intellij-idea #arraylist

Вопрос:

Поэтому я создал программу крестики-нолики в Intellij, которая использует файл index.xhtml в качестве кода, который печатает таблицу 3×3 и имеет поле ввода, которое запрашивает пользователя, в какую ячейку поместить его ход, как только пользователь отправит свой ход, программа перейдет к файлу java.

 lt;table border="1"gt;  lt;trgt;  lt;tdgt;#{functions.board.get(0)}lt;/tdgt;  lt;tdgt;#{functions.board.get(1)}lt;/tdgt;  lt;tdgt;#{functions.board.get(2)}lt;/tdgt;  lt;/trgt;  ....  lt;/tablegt;  lt;h:formgt;  lt;h:outputLabel value="Your move" for="move"/gt;  lt;h:inputText value="#{functions.move.move}" id="move" validatorMessage="Only numbers 1-9 are accepted" required="true"gt;  lt;f:validateRegex pattern="([1-9])"/gt;  lt;/h:inputTextgt;  lt;h:commandButton value="submit" action="#{functions.main_method}"/gt;  lt;/h:formgt;  

и у меня есть еще 2 класса, один класс действует как управляемый компонент для перемещения игроков, а другой выполняет все функции в отношении принятия решения о том, является ли ход игроков действительным, победителем игры, перемещением компьютеров и есть ли еще пустые места на доске для продолжения игры

 public class backend implements Serializable {  private String move;   public String getMove() {  return move;  }   public void setMove(String move) {  this.move = move;  }   public backend(){   }   public backend(String move) {  this.move = move;  }   @Override  public String toString() {  return "backend{"    "move="   move    '}';  } }  
 Listlt;Stringgt; board = Arrays.asList("1","2","3","4","5","6","7","8","9");  private String winner;  private backend move = new backend();     public String main_method(){  if(!check_move(move.getMove(), true)){  return "index?faces-redirect=true";  //this is the move where the player cell is taken  }else {  switch (check_board()){  case "1p":  return "winner?faces-redirect=true";  case "2p":  return "winner?faces-redirect=true";  case "tie":  return "winner?faces-redirect=true";  default:  return "index?faces=redirect=true";  }  }  }   public Boolean check_move(String the_move, Boolean player){  switch (the_move){  case "1":  some function returns true when the cell is available  }   ....   default:  return false;  }    }   public String check_board(){  Boolean counter = false;  for(int j=0; jlt;9;j  ){  if(board.get(j).equals("X") || board.get(j).equals("O")){  counter = true;  break;  }  }   return check_winner(counter, false);  }   public String check_winner(boolean spaces, boolean comp_turn){  if (spaces){  if(board.get(0).equals("X") amp;amp; board.get(1).equals("X") amp;amp; board.get(2).equals("X") ){  return "1p";  ....  }else{  if (comp_turn){  return "none";  }else{  comp_move();  }  }  }else{  return "tie";  }   return "none";  }   public void comp_move(){  Random rand = new Random();  int upperbound = 9;   while(true){  int comp_move = rand.nextInt(upperbound);  String real_move = String.valueOf(comp_move);   if(check_move(real_move, false)){  break;  }  }   check_winner(true, true);   }  

Основная проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда пользователь вводит свой второй ход, массив не сохраняет новые значения, в которых перемещение пользователей было помещено в массив, есть ли способ сохранить новые значения массива всякий раз, когда пользователь отправляется обратно в файл index.xhtml проекта после того, как программа обработала все функции, которые у нее есть?