Android examples for android.support.v4.util:CircularArray
sort CircularArray
/*/* ww w. ja v a 2 s. c om*/ * Copyright 2015. Appsi Mobile * * 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. * */ import android.support.v4.util.CircularArray; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Comparator; public class Main{ public static <T> void sort(CircularArray<T> list, Comparator<? super T> comparator) { if (list.isEmpty()) return; T first = list.getFirst(); T[] array = (T[]) Array.newInstance(first.getClass(), list.size()); array = toArray(list, array); Arrays.sort(array, comparator); list.clear(); for (T item : array) { list.addLast(item); } } private static <T> T[] toArray(CircularArray<T> items, T[] result) { int N = items.size(); if (N != result.length) throw new IllegalArgumentException("Wrong array size"); for (int i = 0; i < N; i++) { result[i] = items.get(i); } return result; } }