[Java 7] Divisez la liste Java et exécutez le processus

Divisez la liste Java et exécutez le processus (Java 7)

introduction

Selon l'environnement, vous devrez peut-être écrire un ancien code exprès. J'ai eu l'occasion d'écrire du code en Java7 qui divise la liste et exécute le processus, je l'ai donc posté pour la première fois.

la mise en oeuvre


public class Sample {
	public static void main(String[] args) {

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Nombre de listes à traiter à la fois

		for (int i = 0; i < sampleList.size(); i += size) {
			List<String> list = new ArrayList<>(
					sampleList.subList(i, Math.min(i + size, sampleList.size()))
			);
			System.out.println(list);	//Effectuer le traitement ici
		}
	}
}

Résultat d'exécution
[aaa, bbb]	// sampleList.subList(0, 2)
[ccc, ddd]	// sampleList.subList(2, 4)
[eee]		// sampleList.subList(4, 5)

La description

subList (int from, int to) renvoie une liste de from (inclus) à to (non inclus). La liste à traiter est acquise en augmentant le nombre de divisions de «de» et «à» par l'instruction for.

Math.min (int a, int b) renvoie la plus petite des deux valeurs int. Si la taille de la liste n'est pas divisible par le nombre de divisions, alors vous devez considérer to, Pour la dernière itération, nous mettons sampleList.size () dans to.

Remarques sur la sous-liste

La liste obtenue par subList partage les données avec la valeur d'origine. Autrement dit, changer la valeur de list changera la valeur de sampleList (Exemple 1). Cependant, en changeant après nouveau, vous ne pouvez changer que la sous-liste sans changer la liste d'origine (exemple 2).

Exemple 1 Lorsque la sous-liste est modifiée, la liste d'origine est également modifiée.

public class Sample {
	public static void main(String[] args) {

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Nombre de listes à traiter à la fois

		System.out.println(sampleList);		//Avant le traitement
		for (int i = 0; i < sampleList.size(); i += size) {
			List<String> list = sampleList.subList(i, Math.min(i + size, sampleList.size()));
			list.set(0, "zzz");				//Exécution du traitement
			System.out.println(list);
		}
		System.out.println(sampleList);		//Après le traitement
	}
}
Résultat d'exécution
[aaa, bbb, ccc, ddd, eee]	//Avant le traitement
[zzz, bbb]
[zzz, ddd]
[zzz]
[zzz, bbb, zzz, ddd, zzz]	//Après le traitement

Comme mentionné ci-dessus, suite à la mise à jour de "list", on peut voir que "sampleList" a également été mis à jour.


Exemple 2 Avec new, la liste d'origine n'est pas mise à jour même si la sous-liste est modifiée.

public class Sample {
	public static void main(String[] args) {

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Nombre de listes à traiter à la fois

		System.out.println(sampleList);		//Avant le traitement
		for (int i = 0; i < sampleList.size(); i += size) {
			List<String> list = new ArrayList<>(
					sampleList.subList(i, Math.min(i + size, sampleList.size()))
			);
			list.set(0, "zzz");
			System.out.println(list);
		}
		System.out.println(sampleList);		//Après le traitement
	}
}
Résultat d'exécution
[aaa, bbb, ccc, ddd, eee]	//Après le traitement
[zzz, bbb]
[zzz, ddd]
[zzz]
[aaa, bbb, ccc, ddd, eee]	//Après le traitement

Comme mentionné ci-dessus, vous pouvez voir que changer list ne change pas sampleList.

référence

Recommended Posts

[Java 7] Divisez la liste Java et exécutez le processus
[Java] Comprendre la différence entre List et Set
[Java] Trier la liste à l'aide de flux et d'expressions lambda
[Java] Supprimer les éléments de la liste
Divisez la liste en nombres arbitraires
Exécutez le code Java stocké dans le presse-papiers.
Différence entre les listes d'arry et les listes liées en Java
Traitez n'importe quel nombre de cas dans la liste Java
[Java8] Recherchez le répertoire et récupérez le fichier
[Java] Contenu de l'interface de collection et de l'interface de liste
Vérifiez les options définies pour le processus Java en cours d'exécution
Processus de mise en mémoire tampon Java
Mémorandum Java (liste)
Clonez la liste Java.
[Java] La partie déroutante de String et StringBuilder
J'ai comparé les caractéristiques de Java et .NET
Mémo: [Java] Traiter le csv lu (extraire et modifier selon les conditions) et sortir
Résumer les différences entre l'écriture C # et Java
Processus de vérification Java
XXE et Java
Compilez et exécutez Java sur la ligne de commande
Un mémo sur le flux de Rails et Vue
ArrayList et le rôle de l'interface vu depuis List
Écrivez ABNF en Java et transmettez l'adresse e-mail
Jusqu'où est la bonne réponse pour diviser le processus?
Veuillez noter la division (division) de java kotlin Int et Int
[No.007] Écran de gestion de l'organisation et processus de connexion à l'organisation
Pour implémenter, écrivez le test puis codez le processus
Organiser l'état actuel de Java et envisager l'avenir
Langage Java du point de vue de Kotlin et C #
Apprentissage rapide Java "Introduction?" Partie 2 Écrivons le processus
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Apprentissage pour la première fois des expressions et opérateurs Java # 3
Classes et instances Java comprises dans la figure
J'ai résumé les types et les bases des exceptions Java
Liste des instructions Java fréquemment utilisées (pour les débutants et les débutants)
21 Lire et exécuter le script à partir du fichier
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Getter et Setter (Java)
[Java] Thread et exécutable
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
Filtrez la liste facultative Java n ° 2 utile en entreprise et obtenez la première valeur
A propos de la liste des baies Java
Accédez à l'API Web avec Get sur Android et traitez Json (Java pour le moment)
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
timedatectl et Java TimeZone
[Java] Branchement et répétition
Liste et cours heureux
[Java] Types de variables et types
java (classe et instance)
[Mémo] Liste liée Java
[Java] Surcharge et remplacement
[Note] Sortie Java de la somme des éléments pairs et impairs
Générer et exécuter le fichier Jar du fichier Java appartenant au package
[Java] Lancer une requête et afficher l'écran ② (GET / POST)