15f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka/*
25f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * Copyright (C) 2012 The Android Open Source Project
35f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka *
45f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License");
55f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * you may not use this file except in compliance with the License.
65f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * You may obtain a copy of the License at
75f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka *
85f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka *      http://www.apache.org/licenses/LICENSE-2.0
95f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka *
105f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software
115f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS,
125f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * See the License for the specific language governing permissions and
145f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka * limitations under the License.
155f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka */
165f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka
17e28eba5074664d5716b8e58b8d0a235746b261ebKen Wakasapackage com.android.inputmethod.latin.utils;
185f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka
195f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaokaimport java.util.ArrayList;
205f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaokaimport java.util.Collections;
215f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaokaimport java.util.Map;
225f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaokaimport java.util.TreeMap;
235f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka
241e11c44d1b5f9ddf593c5407cb14c458be0056f2Tadashi G. Takaokapublic final class CollectionUtils {
255f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka    private CollectionUtils() {
265f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka        // This utility class is not publicly instantiable.
275f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka    }
285f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka
29d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka    public static <E> ArrayList<E> arrayAsList(final E[] array, final int start, final int end) {
30d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        if (array == null) {
31d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka            throw new NullPointerException();
32d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        }
33d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        if (start < 0 || start > end || end > array.length) {
34d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka            throw new IllegalArgumentException();
35d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        }
36d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka
37a91561aa58db1c43092c1caecc051a11fa5391c7Tadashi G. Takaoka        final ArrayList<E> list = new ArrayList<>(end - start);
38d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        for (int i = start; i < end; i++) {
39d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka            list.add(array[i]);
40d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        }
41d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka        return list;
42d245f6c9e2ba1d2cee64a0ecf886907e94aa4b3fTadashi G. Takaoka    }
435f282ea9e4a4590fcbab6e27d5fca7dacbb40a6aTadashi G. Takaoka}
44