diff options
Diffstat (limited to 'src/com/android/launcher3/Lists.java')
-rw-r--r-- | src/com/android/launcher3/Lists.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/com/android/launcher3/Lists.java b/src/com/android/launcher3/Lists.java new file mode 100644 index 000000000..51f5dc272 --- /dev/null +++ b/src/com/android/launcher3/Lists.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3; + +import java.util.ArrayList; +import java.util.Collections; + +/** + * Provides static methods for creating {@code List} instances easily, and other + * utility methods for working with lists. + */ +public class Lists { + + /** + * Creates an empty {@code ArrayList} instance. + * + * <p><b>Note:</b> if you only need an <i>immutable</i> empty List, use + * {@link Collections#emptyList} instead. + * + * @return a newly-created, initially-empty {@code ArrayList} + */ + public static <E> ArrayList<E> newArrayList() { + return new ArrayList<E>(); + } + + /** + * Creates a resizable {@code ArrayList} instance containing the given + * elements. + * + * <p><b>Note:</b> due to a bug in javac 1.5.0_06, we cannot support the + * following: + * + * <p>{@code List<Base> list = Lists.newArrayList(sub1, sub2);} + * + * <p>where {@code sub1} and {@code sub2} are references to subtypes of + * {@code Base}, not of {@code Base} itself. To get around this, you must + * use: + * + * <p>{@code List<Base> list = Lists.<Base>newArrayList(sub1, sub2);} + * + * @param elements the elements that the list should contain, in order + * @return a newly-created {@code ArrayList} containing those elements + */ + public static <E> ArrayList<E> newArrayList(E... elements) { + int capacity = (elements.length * 110) / 100 + 5; + ArrayList<E> list = new ArrayList<E>(capacity); + Collections.addAll(list, elements); + return list; + } +} |