[JAVA] Les objets de la liste étaient des références, non? Confirmation de

Mémorandum sur le traitement du contenu de List

Testé parce que je sentais que les objets de la liste n'étaient pas des références

Préparez une classe de test



public class Test {
	public static void main(String[] args) {
		TestEntity enttity = new TestEntity();
		TestEntity enttity2 = new TestEntity();
		TestEntity enttity3 = new TestEntity();

		ArrayList<TestEntity> list = new ArrayList<>();
		list.add(enttity);
		list.add(enttity2);
		list.add(enttity3);

		showEntityList(list);
	}

	static void showEntityList(ArrayList<TestEntity> list) {
		System.out.println("Regardez le contenu de l'entité");

		for (TestEntity a : list) {
			System.out.println(a.a);
			System.out.println(a.b);
			System.out.println(a.c);
			System.out.println(a.d);
		}
	}
}

public class TestEntity {
	String a = "début";
	String b = "b";
	String c = "c";
	String d = "d";

}

Résultat d'exécution


Regardez le contenu de l'entité
début
b
c
d
début
b
c
d
début
b
c
d

Lorsque vous touchez le contenu de l'objet extrait

Préparez une méthode


	/**
	 *Sortez simplement l'entité et traitez-la
	 * */
	static void modifyOnly(ArrayList<TestEntity> list) {
		int size = list.size();

		for (int i=0;i<size; i++) {
			TestEntity value = list.get(i);
			value.a = "Promenades Hajima(" + i + ")";
			value.b = "2(" + i + ")";
			value.c = "3(" + i + ")";
			value.d = "4(" + i + ")";
		}
	}

Essayez d'utiliser ce qui précède


		TestEntity enttity = new TestEntity();
		TestEntity enttity2 = new TestEntity();
		TestEntity enttity3 = new TestEntity();

		ArrayList<TestEntity> list = new ArrayList<>();
		list.add(enttity);
		list.add(enttity2);
		list.add(enttity3);

		modifyOnly(list);
		showEntityList(list);

Résultat d'exécution


Regardez le contenu de l'entité
Promenades Hajima(0)
2(0)
3(0)
4(0)
Promenades Hajima(1)
2(1)
3(1)
4(1)
Promenades Hajima(2)
2(2)
3(2)
4(2)

Conclusion

Le simple fait de le retirer et de traiter le contenu affectera le contenu de la liste.

C'est étrange, si je faisais ça au travail, ça ne serait pas réécrit, et quand j'ai réinitialisé l'entité réécrite, ça a fait ce que je voulais. Eh bien, ce mouvement est exactement ce à quoi je m'attendais.

Eh bien, je regarde la source du lieu de travail.

Postscript

Grâce à @shiracamus, j'ai appris à rendre la source sur Qiita plus facile à lire. Merci de ne pas savoir comment utiliser Qiita avant les questions techniques.

Vous pouvez souligner et fusionner. Cependant, c'est un secret (sueur) que lorsque j'ai vérifié le contenu de l'indication après l'avoir fixée à la main sans le savoir, il est devenu un état fusionné et au contraire la correction est devenue étrange.

Recommended Posts

Les objets de la liste étaient des références, non? Confirmation de
Extraire un élément spécifique de la liste des objets
Un programme qui compte le nombre de mots dans une liste
[Java] Supprimer les éléments de la liste
Sortie de la différence entre chaque champ de deux objets en Java
Trier la liste des objets Java
Liste des membres ajoutés dans Java 9
Examinez la liste des ID de fuseau horaire disponibles dans la classe Java ZoneId
Liste des types ajoutés dans Java 9
Ordre de traitement dans le programme
Extraire un élément spécifique de la liste des objets
Confirmation et refactoring du flux de la requête au contrôleur dans [httpclient]
Obtenez le résultat de POST en Java
L'identité des paramètres de rails [: id]
Mesurez facilement la taille des objets Java
Comment trier une liste de SelectItems
L'histoire de l'écriture de Java dans Emacs
Ecrire le mouvement de Rakefile dans le runbook
Obtenez le chemin défini dans la classe Controller de Spring Boot sous forme de liste
[N ° 004] Correction de l'écran de la liste des commandes du client
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
Liste des méthodes utilisées dans le rang PAIZA D
À propos de l'idée des classes anonymes en Java
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
Ressentez le passage du temps même à Java
Importer des fichiers de la même hiérarchie en Java