簡體   English   中英

遍歷 ArrayList

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM