Encadear 2 filas

Estou desenvolvendo um programa onde preciso encadear 2 listas, ou seja, o usuário ira fazer uma reserva de um assento tomando como base os dados de um cliente (nome, telefone e documento). São 7 assentos disponíveis, caso haja lugar disponiveis, a reserva é efetuada, caso não o cliente entra na fila de espera. Em caso de cancelamento o primeiro cliente da lista de espera entra na lista de reserva.
Porem deve ser proibido o mesmo cliente realizar 2 reservas ou então ficar 2 vezes na lista de espera.

Para resolver o problema eu estava pensando em usar arrayList ou então fila encadeada.

Para printar preciso usar JOptionPane

A maior dificudade será a manipulação dos dados e não da estrutura. Recomendo que crie uma classe só para isso.

Exemplo:

class ListaDeClientes {
  List<Cliente> reserva;
  List<cliente> espera;
  
  void add(cliente) {
    if (reserva.size < 7) {
      reserva.add(cliente)
    } else {
      espera.add(cliente)
    }
  }
  boolean estaNaEspera(cliente) {
    return espera.procurar(cliente) != -1
  }
}

Exemplo com estrutura diferente:

class ListaDeClientes {
  List<Cliente> clientes;
  int reservas = 7;

  void add(cliente) {
    clientes.add(cliente)
  }
  boolean estaNaEspera(cliente) {
    int indice = clientes.procurar(cliente)
    return indice >= reservas && indice != -1
  }
}

Mas depois como eu poderia implantar isso no main?

eu criei uma classe cliente com o atibutos:

String nome;
String telefone;
String documento;

ai fiz um construtor

No main eu tenho um pouco de dificuldade, seria melhor eu instanciar objetos e colocar nas posições?

Eu também não sei implementar o main.

Provavelmente sim, faça um esboço, não precisa ser código java ou estar funcionando, e deixe como comentário no código. Depois disso vc faz as partes que faltam para esse esboço funcionar.