package org.andengine.util.adt.list; import java.util.ArrayList; import java.util.List; import org.andengine.util.adt.queue.IQueue; import org.andengine.util.adt.queue.concurrent.SynchronizedQueue; import org.andengine.util.math.MathUtils; /** * (c) 2010 Nicolas Gramlich * (c) 2011 Zynga Inc. * * @author Nicolas Gramlich * @since 12:43:39 - 11.03.2010 */ public final class ListUtils { // =========================================================== // Constants // =========================================================== // =========================================================== // Fields // =========================================================== // =========================================================== // Constructors // =========================================================== // =========================================================== // Getter & Setter // =========================================================== // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== // =========================================================== // Methods // =========================================================== public static final <T> IQueue<T> synchronizedQueue(final IQueue<T> pQueue) { return new SynchronizedQueue<T>(pQueue); } public static final <T> T random(final List<T> pList) { return pList.get(MathUtils.random(0, pList.size() - 1)); } public static final <T> ArrayList<? extends T> toList(final T pItem) { final ArrayList<T> out = new ArrayList<T>(); out.add(pItem); return out; } public static final <T> ArrayList<? extends T> toList(final T ... pItems) { final ArrayList<T> out = new ArrayList<T>(); final int itemCount = pItems.length; for(int i = 0; i < itemCount; i++) { out.add(pItems[i]); } return out; } public static <T> void swap(final List<T> pItems, final int pIndexA, final int pIndexB) { final T tmp = pItems.get(pIndexA); pItems.set(pIndexA, pItems.get(pIndexB)); pItems.set(pIndexB, tmp); } public static <T> void swap(final IList<T> pItems, final int pIndexA, final int pIndexB) { final T tmp = pItems.get(pIndexA); pItems.set(pIndexA, pItems.get(pIndexB)); pItems.set(pIndexB, tmp); } public static final int encodeInsertionIndex(final int pIndex) { return (-pIndex) - 1; } // =========================================================== // Inner and Anonymous Classes // =========================================================== }