Collections
ArrayList: add は元の List を変更する
mutable な List では、add の呼び出しが同じインスタンスを更新します。
SourceNumbers.java
Java 21
package examples.list;
import java.util.List;
public final class Numbers {
private Numbers() {}
public static List<Integer> add(List<Integer> values, int value) {
values.add(value);
return values;
}
}TestNumbersTest.java
Java 21
package examples.list;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertSame;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Test;
class NumbersTest {
@Test
void addすると元のListに要素が追加される() {
var list = new ArrayList<Integer>();
var returned = Numbers.add(list, 10);
assertEquals(List.of(10), list);
assertSame(list, returned);
}
}01Assertion
このテストで確認できること
- add を呼ぶと、引数の List に要素が追加される
- 返却値と引数は同じ List インスタンスである
ArrayList は mutable です。新しい List を作らず、元の ArrayList 自身を変更します。
OBSERVED RESULT
expected: [1, 2, 3]
actual: [1, 2, 3]