I'm working on a school assignement where i have to check if certain objects from the ArrayList teKoop are not in the ArrayList mijnGames, the problem is i keep geeting this error code: Index 1 out of bounds for length 1
Is there anything obvious going wrong here?
Any help would be highly appreciated.
public ArrayList<Game> bepaalGamesNietInBezit(ArrayList<Game> teKoop) {
    ArrayList<Game> nogNietInBezit = new ArrayList<Game>();
    for (int i = 0; i <= mijnGames.size(); i++) {
        if (!mijnGames.get(i).getNaam().equals(teKoop.get(i).getNaam())) {
            nogNietInBezit.add(teKoop.get(i));
            return nogNietInBezit;
            }
        }
        return nogNietInBezit;
}
So indexOutOfBound error got fixed, new problem appears :S
It keeps returning me an empty ArrayList:
    private String naam;
    private int releaseJaar;
    private double nieuwprijs;
    private int ditJaar = LocalDate.now().getYear();```
    public Game(String nm, int rJ, double nwpr){
        this.naam = nm;
        this.releaseJaar = rJ;
        this.nieuwprijs = nwpr;
    }
    public String getNaam(){
        return naam;
    }
    public int getReleaseJaar(){
        return releaseJaar;
    }
    public double huidigeWaarde(){
        int jaarVerschil = ditJaar - releaseJaar;
        double nieuweWaarde = nieuwprijs;
        for (int i = 0; i < jaarVerschil; i++){
            nieuweWaarde = nieuweWaarde * 0.7;
        }
        return nieuweWaarde;
    }
    @Override
    public boolean equals(Object andereObject){
        boolean gelijkeObjecten = false;
        if (andereObject instanceof Game) {
            if (((Game) andereObject).getNaam().equals(naam) && ((Game) andereObject).getReleaseJaar() == releaseJaar){
                gelijkeObjecten = true;
            }
        }
        else {
            gelijkeObjecten = false;
        }
        return gelijkeObjecten;
    }
    @Override
    public String toString() {
        return String.format(naam + ", uitgegeven in " + releaseJaar + "; nieuwprijs: €%.2f nu voor: €%.2f", nieuwprijs, huidigeWaarde());
    }
}
```public class Persoon {
    private String naam;
    private double budget;
    private ArrayList<Game> mijnGames;```
    public Persoon(String nm, double bud) {
        this.naam = nm;
        this.budget = bud;
        mijnGames = new ArrayList<>();
    }
    public double getBudget() {
        return budget;
    }
    public boolean koop(Game nm){
        if (!mijnGames.contains(nm) && budget >= nm.huidigeWaarde()){
            mijnGames.add(nm);
            budget = budget - nm.huidigeWaarde();
            return true;
        }
        if (mijnGames.contains(nm) && budget < nm.huidigeWaarde()){
            System.out.println("Er is helaas iets verkeerd gegaan");
            return false;
        }
        if (mijnGames.contains(nm)){
            System.out.println("Je hebt deze game al :)");
            return false;
        }
        if (budget < nm.huidigeWaarde()){
            System.out.println("Helaas heb je niet genoeg budget voor deze game :(");
            return false;
        }
        else {
            return false;
        }
    }
    public boolean verkoop(Game g, Persoon koper){
        if (mijnGames.contains(g) && koper.budget >= g.huidigeWaarde() && !koper.mijnGames.contains(g)){
            budget = budget + g.huidigeWaarde();
            koper.budget = koper.budget - g.huidigeWaarde();
            mijnGames.remove(g);
            koper.mijnGames.add(g);
            return true;
        }
        else {
            return false;
        }
    }
    public Game zoekGameOpNaam(String nm){
        if (mijnGames.size() > 0){
            for (Game game: mijnGames){
                if (game.getNaam().equals(nm)){
                    return game;
                }
            }
        }
        return null;
    }
    
    @Override
    public String toString() {
        if (mijnGames.isEmpty()){
            return String.format(naam + " heeft een budget van " + "€%.2f" + " en bezit de volgende games:", budget);
        }
        else return String.format(naam + " heeft een budget van " + "€%.2f" + " en bezit de volgende games:\n" + mijnGames.toString().replace("[", "").replace("]", ""), budget);
    }
    public ArrayList<Game> bepaalGamesNietInBezit(ArrayList<Game> teKoop) {
        ArrayList<Game> nogNietInBezit = new ArrayList<Game>();
        for (int i = 0; i < mijnGames.size(); i++) {
            if (!mijnGames.contains(teKoop.get(i))) {
                nogNietInBezit.add(teKoop.get(i));
                return nogNietInBezit;
            }
        }
            return nogNietInBezit;
    }
}
public class Main {
    public static void main(String[] args) {
        int releaseJaar1 = LocalDate.now().getYear() - 1; // 1 jaar geleden
        Game g1 = new Game("Just Cause 3", releaseJaar1, 49.98);
        Game g2 = new Game("Need for Speed: Rivals", releaseJaar1, 45.99);
        Game g3 = new Game("Need for Speed: Rivals", releaseJaar1, 45.99);
        Persoon p1 = new Persoon("Eric", 200);
        Persoon p2 = new Persoon("Hans", 55);
        System.out.println("p1 koopt g1:" + (p1.koop(g1) ? "" : " niet") + " gelukt");
        System.out.println("p1 koopt g2:" + (p1.koop(g2) ? "" : " niet") + " gelukt");
        System.out.println("p1 koopt g3:" + (p1.koop(g3) ? "" : " niet") + " gelukt");
        System.out.println("\np1: " +p1+ "\n\np2: " +p2+ "\n");
        System.out.println("p1 verkoopt g2 aan p2:"+(p1.verkoop(g2, p2) ? "" : " niet")+" gelukt");
        System.out.println("p1 verkoopt g1 aan p2:"+(p1.verkoop(g1, p2) ? "" : " niet")+" gelukt");
        System.out.println("\np1: " +p1+ "\n\np2: " +p2+ "\n");
        Game game1 = p1.zoekGameOpNaam("Just Cause 3");
        System.out.println("p1 heeft Just Cause 3 " + (game1 != null ? "wel!" : "niet!"));
        ArrayList<Game> teKoop = new ArrayList<Game>();
        teKoop.add(g1);
        teKoop.add(new Game("Mario Kart 8", 2019, 35.00));
        ArrayList<Game> nogNietInBezit = p1.bepaalGamesNietInBezit(teKoop);
        System.out.println("p1 heeft de volgende games nog niet: " + nogNietInBezit.toString());
    }
}
I apolagise in advance for the code spam, but i have been working on this issue for 4 hours now.
 
     
     
    