我正在尝试通过iterate
ArrayList
并查看它是否包含我输入到获胜者数组中的以下数字。但是,票证object
将不允许我使用.contains()
方法,这是我收到错误的地方。关于如何解决这个问题的任何想法?
int[] winners = new int[6];
for(int i = 0; i < winners.length; i++)
{
winners[i] = in.nextInt();
}
in.close();
Scanner scan = new Scanner(file);
ArrayList<Ticket> info = new ArrayList<Ticket>();
for(int i = 0; i < lim; i++)
{
String name = scan.nextLine();
String num = scan.nextLine();
String[] t = num.split(" ");
int[] tichold = new int[t.length];
for(int j = 0; j < t.length; j++)
{
tichold[j] = Integer.parseInt(t[j]);
}
Ticket ticket = new Ticket(name, tichold);
info.add(ticket);
}
**for(Ticket t : info)
{
if(t.contains(winners))
{
System.out.println("Yes");
}
}**
scan.close();
}
**public static class Ticket
{
public String name;
public int[] tarray;
public Ticket(String name, int[] tarray)
{
this.name = name;
this.tarray = tarray;
}**
答案 0 :(得分:0)
您不能使用该类不存在的方法。由于您没有为contains
定义Ticket
,因此我对它无法正常工作并不感到惊讶。
根据推断,winners
是int[]
。在这种情况下,您需要在contains
内定义一个新方法Ticket
。
public boolean contains(int[] winningNumbers) {
// logic here
}
根据给定门票的中奖号码的存储方式,以及如何定义不同的获胜条件,您可以在此处理您的逻辑。
如果它们存储为数组并且您想要完全匹配,那么您可以使用Arrays.equals
。
public boolean contains(int[] winningNumbers) {
return Arrays.equals(numbers, winningNumbers);
}
答案 1 :(得分:-1)
尝试使用此Ticket类并添加包含方法:
public class Ticket {
public String name;
public int[] tarray;
public Ticket(String name, int[] tarray)
{
this.name = name;
this.tarray = tarray;
}
public boolean contains(int[] winners) {
for (int i = 0; i < winners.length; i++) {
for (int j = 0; j < tarray.length; j++) {
if (winners[i] == tarray[j])
return true;
}
}
return false;
}
}