bonsoir , j’essaie d’exécuter mon programme mais j'ai une erreur du type Stackoverflow

voila le programme, le problème c'est au niveau du deuxième sous programme en bas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static int enleverPresent(Block<Integer> t1 , Block<Integer> t2 ){
		int a = 0 ;
		for(int i = 0 ; i<t2.size() ; i++){
			int x = (Integer) t2.get(i);
				for(int k = 0 ; k<t1.size() ; k++)
			{
				if((Integer)t1.get(k) == x){
 
					int b = t1.get(k);
					t1.set(k , t1.get(t1.size()));
					t1.set(t1.size(), b);
					a++;
				}
			}
		}
		return a;
 
		}
Y'a pas de souci avec le programme du moins je penses mais seulement quand j'essaie de l’exécuter l'erreur est signalée ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public T get(int i) {
	if(i >=0 && i< this.size())
		
		return this.get(i); // la il m'indique un staroverflow
		
	else
		return null;
			
	}