친구들과 나는 비밀의 산타 교환을하고 있으며 재미로 마스터 목록을 무작위로 만들고 인쇄하기로 결정했습니다. 여기 내가 지금까지 가지고있는 것이있다. 줄에 문제가 있습니다. String random1 = sList.get(myRandomizer.nextInt(sList.size()));
다음 arraylist에서 임의의 요소를 제거한 후
오류가 발생합니다. 호환되지 않는 유형의 오류가 발생하지만 정상적으로 돌아 오는 것은 확실합니다.
은 여기 내 초기 클래스
import java.io.Serializable;
public class SpecifiedData implements Serializable
{
private String name;
public SpecifiedData(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
여기 내 오류가
import java.util.*;
import java.io.*;
public class Randomizer
{
public static void main(String[] args) throws IOException, ClassNotFoundException
{
Random myRandomizer = new Random();
boolean done = false;
ArrayList<SpecifiedData> sList = new ArrayList<SpecifiedData>();
File sFile = new File("Participants.dat");
if(sFile.exists())
{
FileInputStream myFIS = new FileInputStream(sFile);
ObjectInputStream sIn = new ObjectInputStream(myFIS);
sList = (ArrayList<SpecifiedData>)sIn.readObject();
sIn.close();
}
do
{
Scanner myScanner = new Scanner(System.in);
while (!done)
{
System.out.println("1 - add a person");
System.out.println("2 - display all people");
System.out.println("3 - delete person");
System.out.println("4 - randomize");
System.out.println("5 - exit");
int choice = Integer.parseInt(myScanner.nextLine());
if (choice == 1)
{
System.out.print("Enter person's name: ");
String participantsName = myScanner.nextLine();
SpecifiedData mySpecifiedData = new SpecifiedData(participantsName);
sList.add(mySpecifiedData);
}
else if (choice == 2)
{
for(int i = 0; i < sList.size(); i++)
System.out.println(sList.get(i).getName());
}
else if (choice == 3)
{
System.out.println("Enter persons name: ");
String participantsName = myScanner.nextLine();
for(SpecifiedData mySpecifiedData : sList)
{
if(mySpecifiedData.getName().equals(participantsName))
{
sList.remove(mySpecifiedData);
break;
}
}
}
else if (choice == 4)
{
for(int i = 0; i < (sList.size()/2); i++)
{
for(SpecifiedData mySpecifiedData : sList)
{
String random1 = sList.get(myRandomizer.nextInt(sList.size()));
if(mySpecifiedData.getName().equals(random1))
{
System.out.println(random1 + " ");
sList.remove(random1);
break;
}
String random2 = sList.get(myRandomizer.nextInt(sList.size()));
if(mySpecifiedData.getName().equals(random2))
{
System.out.print(random2);
sList.remove(random2);
break;
}
}
}
}
else if(choice == 5)
{
done = true;
}
else
System.out.println("Invalid menu choice!");
}
System.out.println("Goodbye!");
}while(!done);
FileOutputStream myFOS = new FileOutputStream(sFile);
ObjectOutputStream sOut = new ObjectOutputStream(myFOS);
sOut.writeObject(sList);
sOut.close();
}
}