Merge "[SparseSetArray] optimize copy constructor" into tm-dev am: 79286a97fd am: d014ec92b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18415062 Change-Id: I4980b014251db3e48abcaab916a9adf8fd60e0da Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -38,10 +38,7 @@ public class SparseSetArray<T> {
|
|||||||
for (int i = 0; i < arraySize; i++) {
|
for (int i = 0; i < arraySize; i++) {
|
||||||
final int key = src.keyAt(i);
|
final int key = src.keyAt(i);
|
||||||
final ArraySet<T> set = src.get(key);
|
final ArraySet<T> set = src.get(key);
|
||||||
final int setSize = set.size();
|
addAll(key, set);
|
||||||
for (int j = 0; j < setSize; j++) {
|
|
||||||
add(key, set.valueAt(j));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,4 +49,27 @@ public class SparseSetArrayTest {
|
|||||||
|
|
||||||
assertThat(sparseSetArray.size()).isEqualTo(5);
|
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