[SparseSetArray] optimize copy constructor
BUG: 232347307 Test: atest android.util.SparseSetArrayTest Change-Id: Ie046f557098ddc168b86523700cc06feede97e5e
This commit is contained in:
@@ -38,10 +38,7 @@ public class SparseSetArray<T> {
|
||||
for (int i = 0; i < arraySize; i++) {
|
||||
final int key = src.keyAt(i);
|
||||
final ArraySet<T> set = src.get(key);
|
||||
final int setSize = set.size();
|
||||
for (int j = 0; j < setSize; j++) {
|
||||
add(key, set.valueAt(j));
|
||||
}
|
||||
addAll(key, set);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,4 +49,27 @@ public class SparseSetArrayTest {
|
||||
|
||||
assertThat(sparseSetArray.size()).isEqualTo(5);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCopyConstructor() {
|
||||
final SparseSetArray<Integer> sparseSetArray = new SparseSetArray<>();
|
||||
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
for (int j = 100; j < 110; ++j) {
|
||||
sparseSetArray.add(i, j);
|
||||
}
|
||||
}
|
||||
final SparseSetArray<Integer> sparseSetArrayCopy = new SparseSetArray<>(sparseSetArray);
|
||||
assertThat(sparseSetArray.size()).isEqualTo(sparseSetArrayCopy.size());
|
||||
for (int i = 0; i < sparseSetArray.size(); ++i) {
|
||||
final ArraySet<Integer> array = sparseSetArray.get(i);
|
||||
final ArraySet<Integer> arrayCopy = sparseSetArrayCopy.get(i);
|
||||
assertThat(array).isNotNull();
|
||||
assertThat(arrayCopy).isNotNull();
|
||||
assertThat(array.size()).isEqualTo(arrayCopy.size());
|
||||
for (int j = 0; j < array.size(); j++) {
|
||||
assertThat(array.valueAt(j)).isEqualTo(arrayCopy.valueAt(j));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user