当前位置: 首页 > news >正文

铭誉摄影网站做中介卖房子开哪个网站

铭誉摄影网站,做中介卖房子开哪个网站,专业的网站建设服务交易平台,阿里云 虚拟主机 wordpress目录 1.0 集合的并发修改问题 1.1 如何解决集合的并发修改问题 2.0 Collcetions 工具类的说明 1.0 集合的并发修改问题 我们可以简单的认为#xff0c;就是使用迭代器遍历集合时#xff0c;又同时在删除集合中的数据#xff0c;程序就会出现并发修改异常的错误。 代码如下就是使用迭代器遍历集合时又同时在删除集合中的数据程序就会出现并发修改异常的错误。 代码如下 import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Abnormal {public static void main(String[] args) {//创建对象再添加数据ListString list new ArrayList();list.add(张三);list.add(陈七);list.add(李麻子);list.add(李四);list.add(王五);//利用迭代器进行遍历,先创建迭代器IteratorString iterator list.iterator();while (iterator.hasNext()){String a iterator.next();if (a.contains(李)){list.remove(a);}}System.out.println(list);} }运行结果如下         像以上情况一边遍历的时候去删除数据直接会报错原因是因为集合是一个可变的容器每删一个数据容器的大小都会改变那么数据存放的位置也会相应的改变。迭代器遍历可能不好理解我们就换成普通的 for 循环但是两者的出现的 Bug 是一样的。 代码如下 import java.util.ArrayList; import java.util.List;public class Text_For {public static void main(String[] args) {//创建对象再添加数据ListString list new ArrayList();list.add(张三);list.add(陈七);list.add(李麻子);list.add(李四);list.add(王五);for (int i 0; i list.size(); i) {String a list.get(i);if (a.contains(李)){list.remove(a);}}System.out.println(list);} } 运行结果如下 发现用 for 循环竟然不报错原因可能是没有用迭代器遍历严谨吧以上的两种代码的效果都是一样的会出现 Bug ,就是本来要删除带 ”李“ 的名字但是发现名字还有一个”李四“没有被删除那是什么原因呢 直接会把 ”李四“ 忽略掉这就是这出现 Bug 的地方。 1.1 如何解决集合的并发修改问题 对于用普通的 for 循环来遍历的代码来说可以有两种方法第一个方法就是每一次删除数据的时候都要进行 i--; 第二方法就是从尾开始遍历。 代码如下 第一种方法 import java.util.ArrayList; import java.util.List;public class Text_For {public static void main(String[] args) {//创建对象再添加数据ListString list new ArrayList();list.add(张三);list.add(陈七);list.add(李麻子);list.add(李四);list.add(王五);for (int i 0; i list.size(); i) {String a list.get(i);if (a.contains(李)){list.remove(a);i--;}}System.out.println(list);} } 运行结果如下         成功把”李四“也删除掉了。 第二种方法 import java.util.ArrayList; import java.util.List;public class Text_For {public static void main(String[] args) {//创建对象再添加数据ListString list new ArrayList();list.add(张三);list.add(陈七);list.add(李麻子);list.add(李四);list.add(王五);for (int i list.size() - 1; i 0; i--) {String a list.get(i);if (a.contains(李)){list.remove(a);}}System.out.println(list);} } 运行结果如下         一样也可以把”李四“删除掉。 对于用迭代器来遍历的代码来说只能把集合对象.remove(String str) 换成迭代器对象.remove() 。 代码如下 import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Abnormal {public static void main(String[] args) {//创建对象再添加数据ListString list new ArrayList();list.add(张三);list.add(陈七);list.add(李麻子);list.add(李四);list.add(王五);//利用迭代器进行遍历,先创建迭代器IteratorString iterator list.iterator();while (iterator.hasNext()){String a iterator.next();if (a.contains(李)){iterator.remove();}}System.out.println(list);} } 运行结果如下         也是可以的。 对于增强 for 循环还有利用 Lambda 表达式的循环都不可以用来一边遍历集合一边删除数据无法解决集合的并发修改异常。 2.0 Collcetions 工具类的说明 是一个用来操作集合的工具类。 以代码为例来介绍具体的静态方法 import java.util.ArrayList; import java.util.Collections; import java.util.List;public class Text_Collections {public static void main(String[] args) {String s1 李四;String s2 张三;String s3 王五;String s4 张麻子;ListString list new ArrayList();//1. addAll() 为集合批量添加数据Collections.addAll(list,s1,s2,s3,s4);System.out.println(list);//输出结果为[李四, 张三, 王五, 张麻子]//2. shuffle() 打乱list集合中的元素顺序Collections.shuffle(list);System.out.println(list);//输出结果为[王五, 张麻子, 李四, 张三]//3. sort() 对list集合的元素进行升序排序Collections.sort(list);System.out.println(list);//输出结果为[张三, 张麻子, 李四, 王五]} } 运行结果如下 补充第三种方法如果对自定的对象进行排序的话默认的 sort 是会报错的所以得自定义比较创建一个比较器。 代码如下 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List;public class Text_Collections {public static void main(String[] args) {Student s1 new Student(张三,19);Student s2 new Student(李四,33);Student s3 new Student(王五,21);ListStudent list new ArrayList();Collections.addAll(list,s1,s2,s3);//自定义根据年龄进行排序Collections.sort(list, new ComparatorStudent() {Overridepublic int compare(Student o1, Student o2) {return o1.getAge()- o2.getAge();}});System.out.println(list);} } 运行结果如下
http://www.hkea.cn/news/14571790/

相关文章:

  • next.js做纯静态网站中小学智慧校园建设平台网站
  • 广州网站营销优化开发wordpress文章显示
  • 转转怎么做钓鱼网站明空网络做网站好不好
  • 汉中微信网站建设出词
  • 品牌网站响应式网站有哪些网页动态设计怎么做
  • 建网站的公司公司网站建设栏目怎么介绍
  • 自己怎么做一个企业官网电商网站如何优化
  • 住房和城乡建设部政务服务门户网站国家企业信息公示网(广东)
  • 肇庆 网站建设公司有哪些专业做室内设计的网站有哪些内容
  • 做网站用什么系统wordpress注册报名
  • 做网站用dw的多吗青岛网站建设方案优化
  • 成都市建设工程施工安监站网站西安建设网站的公司哪家好
  • 网站设计公司 北京中企动力做的 石子厂网站
  • 购买网站空间的方法如何查询网站备案信息
  • 国内大宗商品交易平台镇江网站排名优化公司
  • 网站风格主要包括哪些英文案例网站
  • dede网站模板客官网网站开发框架
  • 网站建设的上市公司淄博网站建设淄博
  • 网站建设与管理的通知如何建立网站教材
  • php网站开发 招聘网站 not found
  • 免费网站空间申请asp网站设置
  • 广州 环保 凡人网站建设国内重大新闻2021
  • 湖南建设教育网站wordpress建立数据库时出错
  • 织梦网站熊掌号改造怎么做wordpress附件详情
  • 深圳品牌网站网站充值平台怎么做的
  • 网站策划win8式网站后台模板
  • 合肥国际网站建设正规平台江苏网站建设
  • 做网站的图片需要多少钱郑州最新防疫进展
  • 南昌大学作风建设网站中国最大的网站制作公司
  • 外贸网站推广和建站怎样设计一个网站