[Java 7] Teilen Sie die Java-Liste und führen Sie den Prozess aus

Teilen Sie die Java-Liste und führen Sie den Prozess aus (Java 7)

Einführung

Abhängig von der Umgebung müssen Sie möglicherweise absichtlich alten Code schreiben. Ich hatte die Möglichkeit, Code in Java7 zu schreiben, der die Liste teilt und den Prozess ausführt, also habe ich ihn zum ersten Mal veröffentlicht.

Implementierung


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

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Anzahl der gleichzeitig zu verarbeitenden Listen

		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);	//Führen Sie hier die Verarbeitung durch
		}
	}
}

Ausführungsergebnis
[aaa, bbb]	// sampleList.subList(0, 2)
[ccc, ddd]	// sampleList.subList(2, 4)
[eee]		// sampleList.subList(4, 5)

Erläuterung

subList (int from, int to) gibt eine Liste von from (enthalten) bis to (nicht enthalten) zurück. Die zu verarbeitende Liste wird durch Erhöhen der Anzahl der Unterteilungen von "von" und "nach" durch die for-Anweisung erfasst.

Math.min (int a, int b) gibt den kleineren der beiden int-Werte zurück. Wenn die Größe der Liste nicht durch die Anzahl der Unterteilungen teilbar ist, müssen Sie "bis" berücksichtigen. Für die letzte Iteration setzen wir sampleList.size () in to.

Hinweise zur Unterliste

Die von subList erhaltene Liste teilt Daten mit dem ursprünglichen Wert. Das heißt, wenn Sie den Wert von "list" ändern, ändert sich auch der Wert von "sampleList" (Beispiel 1). Durch Ändern nach Neu können Sie jedoch nur die Unterliste ändern, ohne die ursprüngliche Liste zu ändern (Beispiel 2).

Beispiel 1 Wenn die Unterliste geändert wird, wird auch die ursprüngliche Liste geändert.

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

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Anzahl der gleichzeitig zu verarbeitenden Listen

		System.out.println(sampleList);		//Vor der Verarbeitung
		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");				//Ausführung verarbeiten
			System.out.println(list);
		}
		System.out.println(sampleList);		//Nach der Behandlung
	}
}
Ausführungsergebnis
[aaa, bbb, ccc, ddd, eee]	//Vor der Verarbeitung
[zzz, bbb]
[zzz, ddd]
[zzz]
[zzz, bbb, zzz, ddd, zzz]	//Nach der Behandlung

Wie oben erwähnt, ist als Ergebnis der Aktualisierung von "list" ersichtlich, dass "sampleList" ebenfalls aktualisiert wurde.


Beispiel 2 Neu wird die ursprüngliche Liste nicht aktualisiert, selbst wenn die Unterliste geändert wird.

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

		List<String> sampleList = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee");
		int size = 2;	//Anzahl der gleichzeitig zu verarbeitenden Listen

		System.out.println(sampleList);		//Vor der Verarbeitung
		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);		//Nach der Behandlung
	}
}
Ausführungsergebnis
[aaa, bbb, ccc, ddd, eee]	//Nach der Behandlung
[zzz, bbb]
[zzz, ddd]
[zzz]
[aaa, bbb, ccc, ddd, eee]	//Nach der Behandlung

Wie oben erwähnt, ist ersichtlich, dass das Ändern der "Liste" die "sampleList" nicht ändert.

Referenz

Recommended Posts

[Java 7] Teilen Sie die Java-Liste und führen Sie den Prozess aus
[Java] Verstehe den Unterschied zwischen List und Set
[Java] Sortieren Sie die Liste mit Streams und Lambda-Ausdrücken
[Java] Löschen Sie die Elemente von List
Teilen Sie die Liste in beliebige Zahlen
Führen Sie den in der Zwischenablage gespeicherten Java-Code aus.
Unterschied zwischen Arrylist und verknüpfter Liste in Java
Verarbeiten Sie eine beliebige Anzahl von Fällen in Java List
[Java8] Durchsuchen Sie das Verzeichnis und holen Sie sich die Datei
[Java] Inhalt der Collection-Schnittstelle und der List-Schnittstelle
Überprüfen Sie die für den laufenden Java-Prozess festgelegten Optionen
Java-Pufferprozess
Java Memorandum (Liste)
Klonen Sie die Java-Liste.
[Java] Der verwirrende Teil von String und StringBuilder
Ich habe die Eigenschaften von Java und .NET verglichen
Anmerkung: [Java] Verarbeiten Sie die gelesene CSV (extrahieren und ändern Sie sie gemäß den Bedingungen) und geben Sie sie aus
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
Java-Überprüfungsprozess
XXE und Java
Kompilieren Sie Java und führen Sie es in der Befehlszeile aus
Ein Memo über den Fluss von Rails und Vue
ArrayList und die Rolle der Schnittstelle aus List
Schreiben Sie ABNF in Java und geben Sie die E-Mail-Adresse weiter
Wie weit ist die richtige Antwort, um den Prozess zu teilen?
Bitte beachten Sie die Aufteilung (Aufteilung) von Java Kotlin Int und Int
[Nr. 007] Organisationsverwaltungsbildschirm und Anmeldevorgang bei der Organisation
Schreiben Sie zur Implementierung den Test und codieren Sie den Prozess
Den aktuellen Status von Java organisieren und die Zukunft betrachten
Java-Sprache aus der Sicht von Kotlin und C #
Schnelles Lernen von Java "Einführung?" Teil 2 Schreiben wir den Prozess
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Zum ersten Mal lernen Java # 3 Ausdrücke und Operatoren
In der Abbildung verstandene Java-Klassen und -Instanzen
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
Java Häufig verwendete Anweisungsliste (für Anfänger und Anfänger)
21 Lesen Sie das Skript aus der Datei und führen Sie es aus
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Getter und Setter (Java)
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Filtern Sie die optionale Java No. 2-Liste, die im Geschäftsleben nützlich war, und erhalten Sie den ersten Wert
Informationen zur Java-Array-Liste
Greifen Sie mit Get on Android auf die Web-API zu und verarbeiten Sie Json (vorerst Java).
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
Liste und fröhliche Klassen
[Java] Variablen- und Typtypen
Java (Klasse und Instanz)
[Memo] Java Linked List
[Java] Überladen und überschreiben
[Hinweis] Java Ausgabe der Summe von ungeraden und geraden Elementen
Generieren und Ausführen der Jar-Datei der zum Paket gehörenden Java-Datei
[Java] Wirf eine Anfrage und zeige den Bildschirm ② (GET / POST) an.