[英]Iterate through ArrayList
我目前正在嘗試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;
}**
您不能使用該類不存在的方法。 由於您沒有為Ticket
定義contains
,我對它不起作用並不感到驚訝。
從推斷, winners
是一個int[]
。 在這種情況下,您需要在Ticket
內部定義一個新方法contains
。
public boolean contains(int[] winningNumbers) {
// logic here
}
根據給定彩票的中獎號碼的存儲方式,以及您如何定義不同的中獎條件,您將在此處處理您的邏輯。
如果它們存儲為數組並且您想要精確匹配,那么您可以使用Arrays.equals
。
public boolean contains(int[] winningNumbers) {
return Arrays.equals(numbers, winningNumbers);
}
使用並添加 contains 方法試試這個 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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.