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