本篇文章给大家谈谈list迭代java,以及list的迭代器用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、如何在java中实现List集合的遍历2、JAVA 迭代器循环输出List数据3、js如何迭代一个java的list4、Java中迭代列表中数据时几种循环写法的效率比较5、java list 迭代(递归)?
如何在java中实现List集合的遍历
java中实现List集合的遍历有三种方法:
方法一:for-each循环
for(String attribute : list) {
System.out.println(attribute);
}
方法二:for循环
for(int i = 0 ; i list.size() ; i++) {
system.out.println(list.get(i));
}
方法三:迭代器迭代
Iterator it = list.iterator();
while(it.hasNext()) {
System.ou.println(it.next);
}
JAVA 迭代器循环输出List数据
这样迭代:
for(Iterator li=list.iterator();li.hasNext();){
Users user=(Users)li.next();
//下面嵌入你的网页代码
}
js如何迭代一个java的list
俩种方式:
1.java后台将list转换成json对象,js在前台直接迭代;(有相应的框架,可以把javaobject直接转换成json对象)
2.java后台将list内容转换成json格式字符串,js前台使用eval将json字符串转换成json对象,然后迭代。
格式用要求:[ ]表示一个对象,{ }表示数组,对象属性使用名值对形式 名:值, 属性间,号分隔。
解析过程都一样,跟java中循环基本一样。
Java中迭代列表中数据时几种循环写法的效率比较
Java中经常会用到迭代列表数据的情况,本文针对几种常用的写法进行效率比较。虽然网上已经有了类似的文章,但是对他们的结论并不认同。常见的实现方法:1.for循环:for(int i = 0; i list.size(); i++) for(int i = 0, size = list.size(); i size; i++) 一般人都会认为第二种写法效率高。2.foreach:for(Object obj : list) 这是一种简洁的写法,只能对列表进行读取,无法修改。3.while:int size = list.size(); while(size– 0) 4.迭代:Object iter = list.iterator(); while(iter.hasNext()) { iter.next(); }测试代码: 针对以上几种方法编写的测试代码。 public static void main(String[] args) { ListInteger list = new ArrayListInteger(); int runTime = 1000;//执行次数 for (int i = 0; i 1000 * 1000; i++) { list.add(i); } int size = list.size(); long currTime = System.currentTimeMillis();//开始分析前的系统时间 //基本的for for(int j = 0; j runTime; j++) { for (int i = 0; i size; i++) { list.get(i); } } long time1 = System.currentTimeMillis(); //foreach for(int j = 0; j runTime; j++) { for (Integer integer : list) { } } long time2 = System.currentTimeMillis(); for(int j = 0; j runTime; j++) { //while int i = 0 ; while(i size){ list.get(i++); } } long time3 = System.currentTimeMillis(); for(int j = 0; j runTime; j++) {//普通for循环 for (int i = 0; i list.size(); i++) { list.get(i); } } long time4 = System.currentTimeMillis(); for(int j = 0; j runTime; j++) {//迭代 IteratorInteger iter = list.iterator(); while(iter.hasNext()) { iter.next(); } } long time5 = System.currentTimeMillis(); long time = time1 – currTime ; System.out.print(“use for:” + time); time = time2 – time1; System.out.print(“\tuse foreach:” + time); time = time3 – time2; System.out.print(“\tuse while:” + time); time = time4 – time3; System.out.print(“\tuse for2:” + time); time = time5 – time4; System.out.print(“\tuse iterator:” + time); System.out.println(); }输出结果(JDK1.6):1.use for:8695 use foreach:17091 use while:6867 use for2:7741 use iterator:141442.use for:8432 use foreach:18126 use while:6905 use for2:7893 use iterator:139763.use for:8584 use foreach:17177 use while:6875 use for2:7707 use iterator:14345结论:1.针对列表的 foreach的效率是最低:耗时是普通for循环的2倍以上。个人理解它的实现应该和iterator相似。2. list.size()的开销很小:list.size()次数多少对效率基本没有影响。查看ArrayList的实现就会发现,size()方法的只是返回了对象内的长度属性,并没有其它计算,所以只存在函数调用的开销。对数组的测试:将代码中的列表list换做数组再进行测试(iterator不适用),发现耗时基本为0。说明:3. 列表的get()方法开销不少应该主要是检测数据合法性时产生的。将执行次数增加100万倍,这时可以看出结果基本相等,并没有明显的差异。说明:4. 数组length也没有开销可见数组长度并不是每次执行的时候都要计算的。联想一下Java创建数组的时候要求必须指定数组的长度,编译处理的时候显然没有把这个值抛弃掉。网上有一篇类似的文章,它居然得出了一个foreach执行效率最高的结论。
java list 迭代(递归)?
要用递归
public static void showList(ListMenu allMenu) {
if (allMenu == null || allMenu.size() == 0 ) {
return ;
} else {
IteratorMenu iter = allMenu.iterator() ;
while(iter.hasNext()) {
Menu m = iter.next();
// 打印信息或将信息保存到一个公共集合中
System.out.println(m.getMenuId());
showList(m.getChilds());
}
}
}
public static void main(String[] args) {
// 把所有内容的集合传入
showList(all);
}
关于list迭代java和list的迭代器用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。