java collection operations - gluehloch/java-examples GitHub Wiki
List<Integer> copy = new ArrayList<>(list);List<Integer> copy = new ArrayList<>();
copy.addAll(list);Achtung: Falls die Elemente der Liste veränderlich sind, hat eine Änderung an einem Element Auswirkungen auf beide Listen.
List<Integer> source = Arrays.asList(1,2,3);
List<Integer> dest = Arrays.asList(4,5,6);
Collections.copy(dest, source);List<Integer> source = Arrays.asList(1, 2, 3);
List<Integer> dest = Arrays.asList(5, 6, 7, 8, 9, 10);
Collections.copy(dest, source);Aus java-examples:
package collections;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import org.assertj.core.util.Arrays;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
public class CopyCollection {
@DisplayName("Example: Copy a collection")
@Tag("collections")
@Test
void copyCollections() {
List<String> strings = List.of("Andre", "Christine", "Adam", "Lars", "Erwin");
List<String> copy = new ArrayList<>(strings);
assertThat(copy).containsExactlyElementsOf(strings);
// Achtung: Arrays.asList liefert nicht den generischen Typen zurzueck.
List<Object> strings2 = Arrays.asList(new String[] {"Andre", "Christine", "Adam", "Lars", "Erwin"});
assertThat(strings2).hasSize(strings2.size());
List<Object> destination = Arrays.asList(new String[] {"1", "2", "3", "4", "5", "6"});
// Achtung: Erstellt keine Kopie wie im oberen Beispiel. Das Element "6" wird in der
// 'destination' bei behalten.
Collections.copy(destination, strings2);
assertThat(destination).hasSize(6);
assertThat(destination).containsExactly("Andre", "Christine", "Adam", "Lars", "Erwin", "6");
List<String> strings3 = strings.stream().collect(Collectors.toList());
assertThat(strings3).containsExactlyElementsOf(strings3);
}
}package listassert;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import java.util.List;
import org.junit.jupiter.api.Test;
/**
* Some examples to test a list.
*
* @author Andre Winkler
*/
class ListAssert {
@SuppressWarnings("static-access")
@Test
public void assertJdemo() {
final Person a = Person.of("Winkler", "Andre");
final Person b = Person.of("Winkler", "Adam");
final Person c = Person.of("Winkler", "Lars");
final Person d = Person.of("Winkler", "Erwin");
final List<Person> list = List.of(a, b, c, d);
assertThat(list).extracting("name", "firstName").contains(
tuple("Winkler", "Andre"),
tuple("Winkler", "Adam"),
tuple("Winkler", "Lars"),
tuple("Winkler", "Erwin"));
assertThat(list).extracting("name", "firstName").containsOnly(
tuple("Winkler", "Andre"),
tuple("Winkler", "Adam"),
tuple("Winkler", "Lars"),
tuple("Winkler", "Erwin"));
assertThat(list).extracting("name", "firstName").containsExactlyInAnyOrder(
tuple("Winkler", "Andre"),
tuple("Winkler", "Adam"),
tuple("Winkler", "Lars"),
tuple("Winkler", "Erwin"));
}
private static class Person {
public String name;
public String firstName;
private Person(String name, String firstName) {
this.name = name;
this.firstName = firstName;
}
public static Person of(String name, String firstName) {
return new Person(name, firstName);
}
public String getName() {
return name;
}
public String getFirstName() {
return firstName;
}
}
}