怎么查看,一个list中有几个指定的类对象?
声明了一个list
里面封装了很多数据.
想在想查看这个list有多少条数据.
还向知道这个list中有多少个指定类的对象,封装了多少个在这个list中
[解决办法]
List<Object> list = new ArrayList<Object>();
list.add(xxx);
for (int i = 0; i < list.size(); i++) {
if (list.get(i) instanceof xxx) {
//多少数据是list.size()
//对象的话就instanceof
}
}
[解决办法]
封装?是保存数据吧?
for example
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()); }}