10 人の顧客が既に挿入されている 1 つの arraylist という新しい arraylist があります。arraylist からランダムな顧客を選択し、それを 2 番目の arraylist に追加するループを実行しています。ただし、顧客を2番目の配列リストに挿入すると、重複が発生します。そのため、顧客を 2 番目の arraylist に追加した後にループが実行されると、1 番目の arraylist から顧客が削除されます。
ただし、実行するとエラーが発生します。Intervals error: java.lang.IndexOutOfBoundsException: Index: 7, Size: 7
ArrayList<String> customer = new ArrayList<String>(Arrays.asList(list));
int customerlist = customer.size();
while (line.isEmpty())
{
for (int x = 0; x < customerlist; x++ )
{
try
{
Thread.sleep(intervals * 1000); //Sleep method to hold the arrival time by 1-2 seconds.
int cus = (int) (Math.random() * customerlist); //Random customer is picked here.
String new_cus = customer.get(cus); //New customer object is created ere.
line.add(new_cus); //Customer objects are added to the empty LinkedList queue.
customer.remove(cus);
//For loop statement to outputting the queue.
for (String s : line)
{
System.out.print("[" + s.toString() + " " + "]"); //Outputting each customer and using the ".name" method so customers are readable.
}
//Outputting the whole queue and stating who has joined the queue.
System.out.println("\n" + "The queue has " + line.size() + " customers so far" + "\n" +
new_cus.toString() + " Has Joined the Queue " + " <=== WAITING" + "\n");
}
catch(Exception e) //ERROR handler for sleep method.
{
System.out.println("Intervals error: " + e); //Outputting the ERROR message.
System.exit(0); //If ERROR found exit system.
}
}
}