Java 遍历ArrayList
我目前正在尝试遍历一个ArrayList,看看它是否包含我输入到winners数组中的以下数字。但是,ticket对象不允许我使用.contains方法,这是我得到错误的地方。你知道如何解决这个问题吗Java 遍历ArrayList,java,arraylist,iterator,contains,Java,Arraylist,Iterator,Contains,我目前正在尝试遍历一个ArrayList,看看它是否包含我输入到winners数组中的以下数字。但是,ticket对象不允许我使用.contains方法,这是我得到错误的地方。你知道如何解决这个问题吗 int[] winners = new int[6]; for(int i = 0; i < winners.length; i++) { winners[i] = in.nextInt(); } in.close(); Scanner sc
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;
}**
不能使用该类不存在的方法。因为您没有为票证定义包含,所以它不起作用并不奇怪 根据推断,winners是一个int[]。在这种情况下,您需要在票证内部定义一个新方法 根据给定彩票中奖号码的存储方式,以及您如何定义不同的中奖条件,您可以在这里处理您的逻辑 如果它们存储为数组,并且您需要精确匹配,则可以使用
public boolean contains(int[] winningNumbers) {
return Arrays.equals(numbers, winningNumbers);
}
使用添加的包含方法尝试此票证类:
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;
}
}
错误是什么?你的票子类包含,包含方法吗?票子类是什么?那么,初学者,现在知道是什么导致了错误?你不想看看中奖者是否包含票子的号码吗?谢谢,这就是我大部分困惑的地方
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;
}
}