Enfaite dans tous les langages de programmation orientés objet il y a plusieurs type de portée ;
- Lorsqu'elle est déclarée dans la classe, toute la classe y a accès
- Lorsqu'elle est déclarée dans un bloc d'instruction {}, elle est dite locale: Seul le bloc y a accès.
(j'ai pas de tabulation sur mon tel j'ai du faire avec les moyens du bord)
Donc au lieu de créer ton ArrayList dans ton if, créer-le dans ta classe.
Et fait list.contains(id) pour tester si la liste contient l'ID, list.remove(id) pour le supprimer une fois que t'as détruit la flèche.
Après ta liste je te conseil de mettre la template ArrayList<Integer> (int n'est pas une classe, et ne marche pas), comme ça t'aura des avertissements si jamais tu tentes de faire un list.contains(x) avec x != int sur les IDEs récentes.
- Lorsqu'elle est déclarée dans la classe, toute la classe y a accès
- Lorsqu'elle est déclarée dans un bloc d'instruction {}, elle est dite locale: Seul le bloc y a accès.
Code:
public class Foo {
public int a; // a est accessible dans toute la classe
public void f1(String b) { // b juste dans la fonction
for(float c = 0; c < 2; c += 0.5f) { // c juste dans la boucle for
// a, b & c accessibles
}
// a & b accessibles
}
public int f2() {
// seulement a est accessible
return -1;
}
}
Donc au lieu de créer ton ArrayList dans ton if, créer-le dans ta classe.
Et fait list.contains(id) pour tester si la liste contient l'ID, list.remove(id) pour le supprimer une fois que t'as détruit la flèche.
Après ta liste je te conseil de mettre la template ArrayList<Integer> (int n'est pas une classe, et ne marche pas), comme ça t'aura des avertissements si jamais tu tentes de faire un list.contains(x) avec x != int sur les IDEs récentes.