java 三个循环的优缺点
package cc.knms.appservice.test; import java.text.ParseException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class Test {
/**
* @autho 方华哥哥
* @remark 关于list 性能 ,删除其中的元素测试
* //附带说下这三个循环的性能
* @date 2016年12月21日 下午1:48:33
* @param
* @return
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// 循环中 删除元素测试
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e"); for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("b")) {
list.remove(i);
}
System.out.println(list.get(i));
System.out.println(list + "--");
}
//性能:内部不锁定,效率最高,但是当写多线程时要考虑并发操作的问题
/* 内部不锁定也是其缺点,这样会导致循环当中删除某个元素可能会出现不必要的问题
* 通过结果我们可以看到,在基本的for循环中 我们也能正常的删除元素,但是这里的指针会向前移动. a b-- c c-- d c-- e
* c--
*/ for (String string : list) {
if (string.equals("b")) {
list.remove(string);
}
System.out.println(string);
}
// 性能:当遍历集合或数组时,如果需要访问集合或数组的下标,
// 那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息其实 /*
* 在增强for循环中删除元素我们可以看到直接报错 aException in thread "main" b
* java.util.ConcurrentModificationException
*/ Iterator<String> it = list.iterator();
while (it.hasNext()) {
if (it.next().equals("b")) {
it.remove();
}
System.out.println(list);
}
//性能:执行过程中会进行数据锁定,性能稍差,但是同时,如果你想在循环过程中去掉某个元素,为了避免不必要的问尽量使用it.remove方法;
/*
* Iterator 也能正常的删除,在循环中需要删除数据,然后在获取某个值的时候建议用Iterator,
* 如果用基本的for循环的时候,可能得出的值会错乱,for循环每删除一个元素,指针会像前移动,如果通过get去获取值的时候可能不是自己想要的
* Iterator 则不会
* [a, b, c, d, e] [a, c, d, e] [a, c, d, e] [a,
* c, d, e] [a, c, d, e]
*/
} }
java 三个循环的优缺点的更多相关文章
- java 三种循环及注意事项
package debug; public class Demo8 { public static void main(String[] args) { //采用for循环打印10次Java好 for ...
- 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: class Dome_For2{ public st ...
- java三线程循环有序打印ABC
迅雷笔试题: 编写一个程序,开启3个线程,这3个线程的ID分别为A.B.C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示:如:ABCABC….依次递推. 解决思路:每个线 ...
- Java的三种循环:1、for循环 2、while循环 3、do...while循环
Java的三种循环 Java三种循环结构: 1.for循环 2.while循环 3.do...while循环 循环结构组成部分:1.条件初始化语句,2.条件判断语句 , 3.循环体语句,4.条件控制语 ...
- java基础三种循环的使用及区别
摘要:Java新人初学时自己的一些理解,大神们路过勿喷,有什么说的不对不足的地方希望能给予指点指点,如果觉得可以的话,希望可以点一个赞,嘿嘿,在这里先谢了.在这里我主要说的是初学时用到的Java三个循 ...
- Java语言----三种循环语句的区别
------- android培训.java培训.期待与您交流! ---------- 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式 ...
- java基础3_循环语句,数组
java中的循环: Java中提供了3中循环结构: while do-while for ① 循环结构的作用? 可以不断重复执行循环结构中的代码: ② 上面的3个循环结构功能都是一样的,只是结构 ...
- qlserver、Mysql、Oracle三种数据库的优缺点总结
这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下 一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...
- java中for循环的6种写法
有些写法上的说明写的过于武断,可能有很多不当之处,仅供参考. package ForLoop; import java.util.ArrayList; import java.util.Itera ...
随机推荐
- 设置Windows 7 防火墙端口规则
http://jingyan.baidu.com/article/c843ea0b7d5c7177931e4ab1.html?qq-pf-to=pcqq.c2c 主要解决手机访问pc站点的问题(pc和 ...
- Perl技巧
项目里面一直用的是Perl,Perl里有各种小技巧就分享在这吧. push(@a, $b) 把b元素压入a数组中, 还可以有 push(@a, [@b]); 那a就成了二维数组了 scalar(@a) ...
- Kindle使用的一些方法
最大的好处就是方便,买书便宜,到手我就买了六部书,十块钱不到,以纸书的价格一本都买不到,能够买一些一直想读一下,但又担心读不下去的书.而且买了之后完全不用担心书柜收纳不下了.另外很轻便,放在包里上下班 ...
- JS常用方法记录
//对Object的num字段进行排序 var compare = function (propertyName) { return function (object1, object2) { var ...
- C语言程序设计第10堂作业
一.本次课主要内容: 本次课程学习数组,一种最基本的构造类型,它是一组相同类型数据的有序集合.数组中的元素在内存中连续存放,每个元素都属于同一种数据类型,用数组名和下标可以唯一地确定数组元素: (1) ...
- Tabbed Activity的使用(Fragment)
1,首先file -> new -> Activity -> Tabbed Activity 2,创建完成后,发现会自动的创建一大堆代码,大部分我们是不需要关心的,关于页面切换的代码 ...
- Spring中的SPEL
src\dayday\Person.java package dayday;/** * Created by I am master on 2016/11/28. */public class Per ...
- CUDA ---共享存储器
原文地址:http://www.cnblogs.com/1024incn/p/4605502.html shared memory在之前的博文有些介绍,这部分会专门讲解其内容.在global Memo ...
- 在ubuntu14.04 64位虚拟机中安装mysql
因为在win10 系统上手贱的将mysql卸载掉了之后有个插件一直无法正常删除导致只能将mysql装到ubuntu虚拟机上, 宝宝心里都是累啊,所以记录下来自己的安装过程2333 命令行操作: &qu ...
- 关于string,我今天科普的
今天下午朋友讨论组上讨论一个关于string的问题,问题是这样的,string a="aaa";string b=a;a="bbb",为什么测试b的值不改变?之 ...