Creo que tienes una idea la cual no estas planteando correctamente, intentare hacerte una aclaración para que reconsideres la forma de plantear tu problema.
Una de las maravillas de la programación es que puedes representar una cosa o situación de la vida real en código, por ejemplo podemos crear un objeto (código) que represente una persona y este objeto podría tener desde un nombre, apellido, edad, ext... hasta un tipo de sangre, ritmo cardíaco, estado emocional, ext... entre muchas otras cosas que tiene o podría tener una persona real. Pero así como en la vida real existen limitaciones así mismo existen limitaciones (cosas que no pueden ser "por el momento") en la programación, por ejemplo no es posible que en la vida real una persona pueda vivir debajo del agua sin tomar oxigeno, en programación (java) no es posible usar un numero como nombre de variable para contener un valor boleano ni para contener ningún otro tipo de valor, por lo tanto decir
boolean 1 = false;
es incorrecto (no es posible) a diferencia de decir
boolean x1 = false;
que si es posible. Simplemente un numero no puede ser una variable que contendría o apuntaría a un valor u objeto, a menos que tal numero lleve una letra ante puesta como en el segundo caso.
Es normal que aveces nos compliquemos la vida a la hora de diseñar un código, pero debemos de ser capaces de poder analizar un código y corregir sus deficiencias. Un código corto claro y limpio siempre sera preferido ante un código largo (muchas lineas de código) y confuso, aun cuando ambos códigos realicen la misma funcion. Por tanto, si una linea de código o variable no es del todo necesaria en un código es preferible no incluirla.
En tu anterior código creaste la variable boleana "alquilar" (la cual mantuve en el código respuesta que plantee, para mantener tu idea ) para controlar cuando un auto estaría disponible y cuando estaría alquilado, tomando en cuenta que el usuario elige uno de los tres autos disponibles y que el elegido por el usuario pasaría a la lista de alquilados, pues se podría decir que la variable "alquilar" esta demás y que esta a su ves genera mas código "innecesario". Elimina la variable "alquilar" y sustituye el fragmento de código correspondiente, por el siguiente fragmento de código en el código de la anterior clase
AlquilarAuto:
while(it.hasNext())
{
String tmpAutDisp = it.next();
if(alquilado.equals(tmpAutDisp))
{
autoAlquilado[0] = tmpAutDisp;
it.remove();
}
}
Si te fijas, obtenemos el mismo resultado con menos código.
Respondiendo a tu duda:
Otra dudita, supongamos que tengo la variable boolean x, y que 1 2 3 son false y 4 5 6 son true, como muestro por un lado los valores true en un lista y por otro los false?
Tendria que quedar asi:
Valores true:
4
5
6
Valores false:
1
2
3
Solución que propongo: Olvida la variable boleana x, crea dos vectores (Valores true, Valores false), arreglos o colecciones diferentes, crea tareas para que los elementos del vector "Valores true" puedan ser eliminados y/o movidos al vector "Valores false" según los criterios definidos en un condicional if. Usa los recursos que creas convenientes para recorrer los elementos de cada vector y mostrarlos por pantalla.
Una ves mas, podrías tomar el siguiente código como material de apoyo.
Clase
AlquilarAuto ligeramente modificada:
import java.util.Scanner;
import java.util.Collection;//Importamos la clase padre de todas las colecciones, para asignar como tipo dinamico "Collection" a la coleccion (ArrayList) "listaAutDisp".
import java.util.ArrayList;//Importamos la clase ArrayList para copiar los elementos contenidos en el vector "autoDisponible" en una colección de tipo Arraylist.
import java.util.Iterator;//Importamos esta clase para poder recorrer la colección listaAutDisp al mismo tiempo que la manipulamos (borramos elementos en esta)
public class AlquilarAuto
{
public static void main(String[]args)
{
Scanner teclado=new Scanner(System.in);
String[ ] autoDisponible = new String[3];
String[ ] autoAlquilado = new String[1];//En este vector sera copiado el elemento eliminado en la coleccion "autoDisponible"
for(int x=0;x<autoDisponible.length;x++){//En vez de indicar "3" invocamos el metodo length (sin parentecis) sobre el vector autoDisponible, que devuelve su tama?o
System.out.print("ingreso de modelos "); //INGRESO DE DATOS AL VECTOR
autoDisponible[x]=teclado.next();
}
Collection<String> listaAutDisp = new ArrayList<String>();/*Aquí usaremos un tipo "Collection" puesto que al vector autosDisponibles no se le puede aplicar
el metodo iterator();*/
for(String obj: autoDisponible)//Rellenamos la coleccion "listaAutDisp" copiando los elementos del vector "autosDisponibles" en esta.
{
listaAutDisp.add(obj);
}
Iterator<String> it = listaAutDisp.iterator();//Creamos una Copia de "listaAutDisp" que nos permitirá recorrer y manipular la colección "listaAutDisp"
System.out.print("\fCual de los siguientes autos desea alquilar?\n\n");
for(String obj: listaAutDisp)
{
if(obj != null)
{
System.out.println(" " + obj);
}
}
System.out.println("");
String alquilado;
alquilado = teclado.next();
System.out.print("\fAutos disponibles:\n\n");
while(it.hasNext())
{
String tmpAutDisp = it.next();
if(alquilado.equals(tmpAutDisp))
{
autoAlquilado[0] = tmpAutDisp;
it.remove();
tmpAutDisp = null;
}
if(tmpAutDisp != null)
{
System.out.println(" " + tmpAutDisp);//Aprovecho el bucle while para mostrar los autos disponibles (reutilizar de código) y evito tener que usar otro bucle.
}
}
System.out.print("\nAuto alquilado:\n\n");
for(String obj: autoAlquilado)
{
System.out.println(" " + obj);
}
}
}
Espero que tus dudas queden claras.
Saludos!