Here you can find the source of getSubList(List list, Class type)
public static List getSubList(List list, Class type)
//package com.java2s; /*//ww w . j av a2 s.co m Strandz LGPL - an API that matches the user to the data. Copyright (C) 2007 Chris Murphy Strandz LGPL is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA The authors can be contacted via www.strandz.org */ import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static final boolean INCLUDE = true; /** * Return all the classes in list which are of type. The result will include all * subclasses of type */ public static List getSubList(List list, Class type) { return getSubList(list, type, INCLUDE); } /** * Return all the classes in list which are NOT of type if ofType is set to false. * The result will [include/Not include] all subclasses of type. */ public static List getSubList(List list, Class type, boolean ofType) { List result = new ArrayList(); for (Iterator en = list.iterator(); en.hasNext();) { Object obj = en.next(); if (type.isAssignableFrom(obj.getClass())) { if (ofType) { result.add(obj); } } else { if (!ofType) { result.add(obj); } } } return result; } public static List getSubList(Object objs[], Class type) { return getSubList(objs, type, true); } public static List getSubList(Object objs[], Class type, boolean ofType) { List result = new ArrayList(); for (int i = 0; i < objs.length; i++) { Object obj = objs[i]; if (type.isAssignableFrom(obj.getClass())) { if (ofType) { result.add(obj); } } else { if (!ofType) { result.add(obj); } } } return result; } }