日期:2014-05-20 浏览次数:20952 次
int recordCount = list.size(); int objCount = 0; for (int i=0; i<list.size(); i++) { Object obj = list.get(i); if (obj != 0 && obj.getClass() == SomeClass.class) { //如果子类也需要计算的话,用 obj instanceOf SomeClass objCount; } } System.out.printf("有%d条记录, 有%d个指定类对象\n", recordCount, objCount);
------解决方案--------------------
List看看有没有泛型的信息,如果有就很容易了,直接list.size()就可以看到List里面有多少数据
如果没有泛型信息,那么就得遍历list然后逐个计数了,利用instanceof判定
import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: Administrator * Date: 2011-9-22 * Time: 20:50:57 * To change this template use File | Settings | File Templates. */ public class ListDemo { public static void main(String[] args){ List list=new ArrayList(); list.add("abc"); list.add("cde"); list.add("fgh"); list.add(1); list.add(2); list.add(4); list.add(true); list.add(false); int stringNum=0; int booleanNum=0; int intNum=0; for(Object o:list){ if(o instanceof String){ stringNum++; } if(o instanceof Boolean){ booleanNum++; } if(o instanceof Integer){ intNum++; } } System.out.println("String元素数目"+stringNum); System.out.println("boolean元素数目"+booleanNum); System.out.println("int元素数目"+intNum); System.out.println("总共元素数目"+list.size()); } }