JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举

  增强for:是for循环的一种。

  格式:
    for(元素数据类型 变量 : 数组或者Collection集合) {
        使用变量即可,该变量就是元素
      }

  好处:简化了数组和集合的遍历。

  弊端: 增强for的目标不能为null。
    如何解决呢?对增强for的目标先进行不为null的判断,然后在使用。

 import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class ForDemo { public static void main(String[] args) {
//int数组的遍历
int[] arr = {11,22,33,44,55,66,77};
for(int i : arr){
System.out.println(i);
}
System.out.println("---------"); //String数组的遍历
String[] str = {"阿猫","阿狗","花花","草草"};
for(String s : str){
System.out.println(s);
}
System.out.println("---------"); //Collection集合的遍历
Collection<Integer> c = new ArrayList<Integer>();
c.add(2008);
c.add(2012);
c.add(2016);
for(Integer i : c){
System.out.println(i);
}
System.out.println("---------"); //ArrayList集合的遍历
ArrayList<String> s = new ArrayList<String>();
s.add("java");
s.add("javaee");
s.add("javase");
s.add("Android");
for(String ss : s){
System.out.println(ss);
}
System.out.println("---------"); //但是,当遍历的是一个空集合呢?
List<Double> l = null; //大写的Double才是引用类型
//NullPointerException
// 这个d是我们从list里面获取出来的,在获取前,它肯定还好做一个判断
// 说白了,这就是迭代器的功能
//解决方法:给它加个进入语句的条件
if(l != null){
for(Double d : l){
System.out.println(d);
}
} // 增强for其实是用来替代迭代器的
//ConcurrentModificationException
for(String s1 : s){
if("Android".equals(s1)){
s.add("IOS");
}
System.out.println(s1);
} }
}

  ArrayList存储字符串并遍历。要求加入泛型,并用增强for遍历。
  目前掌握了3种遍历方法:
    A:迭代器
    B:普通for
    C:增强for

 import java.util.ArrayList;
import java.util.Iterator;
public class ArrListDemo { public static void main(String[] args) {
//创建ArrayList集合
ArrayList<String> list = new ArrayList<String>();
//给集合添加元素
list.add("java");
list.add("javaee");
list.add("javase");
list.add("Android"); //第一种遍历方法:迭代器
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
System.out.println("-------"); //第二种遍历方法:普通for
for(int x = 0; x < list.size(); x++){
String s1 = list.get(x);
System.out.println(s1);
}
System.out.println("-------"); //第三种遍历方法:增强for
for(String s2 : list){
System.out.println(s2);
}
} }

java 16 - 9 增强for的概述和使用的更多相关文章

  1. Java 16 新特性:instanceof增强

    instanceof这个关键词,主要用来判断某个对象是不是某个类的实例. 比如,有时候我们要处理一个类似这样的数据集: Map<String, Object> data = new Has ...

  2. java高级特性增强

    第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...

  3. [转帖]Java虚拟机(JVM)体系结构概述及各种性能参数优化总结

    Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知 ...

  4. 官方正式发布 Java 16

    前言 就在2021/03/16,官方正式发布了Java 16.我们可以下载使用Java 16了. 特性 向量API(孵化) 在运行期,Vector 表示向量计算可以可靠地编译成支持CPU架构上的最佳矢 ...

  5. Java:ConcurrentHashMap类小记-1(概述)

    Java:ConcurrentHashMap类小记-1(概述) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentHas ...

  6. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

  7. (一)一起学 Java Collections Framework 源码之 概述

    . . . . . 目录 (一)一起学 Java Collections Framework 源码之 概述 JDK 中很多类 LZ 已经使用了无数次,但认认真真从源码级研究过其原理的还只占少数,虽然从 ...

  8. MD5、SHA1加密java 16位32位

    MD5.SHA1加密java 16位32位 import java.math.BigInteger; import java.security.MessageDigest; public class ...

  9. java 16进制与字符串直接相互转换

      java 16进制与字符串直接相互转换 CreationTime--2018年7月12日09点39分 Author:Marydon 1.16进制转换成字符串 /** * 16进制直接转换成为字符串 ...

随机推荐

  1. JavaScript 之垃圾回收和内存管理

    JavaScript 具有自动垃圾收集机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存.而在 C 和 C++ 之类的语言中,开发人员的一项基本 ...

  2. ASP.NET MVC another entity of the same type already has the same primary key value

    ASP.NET MVC项目 Repository层中,Update.Delete总是失败 another entity of the same type already has the same pr ...

  3. SAP debug的几种方式

         1. 直接在程序中设断点 这种方式想必大家都知道了,在se38里面打上breakpoint,程序运行到该处即进入debug模式   2.background Job的debug 进入SM37 ...

  4. SharePoint 2013 排错之"Code blocks are not allowed in this file"

    今天,设置页面布局的自定义母版页时,设置完了以后保存,然后预览报错,错误如下截图:删掉自定义母版页的MasterPageFile属性,页面依然报错:感觉甚是奇怪,因为有版本控制,还原为最初的版本,依然 ...

  5. 使用Sharepoint定时运行Excel中宏程序

    需求:因为Excel中数据量很大,其中包含了几个宏程序从其他数据源读取数据,运行一次宏需要比较长的时间,为了不影响使用,要求每天半夜运行一次Excel中的宏(无参数),Excel存放在共盘上. 解决方 ...

  6. java中判断字符串是否为数字的方法

    一: //1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); ...

  7. VS2010运行正常的控制台程序在VS2015中出现乱码的解决方法

    以前在Visual Stuido 2010中运行正常的控制台程序,在Visual Studio 2015中出现乱码,找到<Visual Studio 2015的坑:中文字符串编译后成乱码> ...

  8. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q81-Q84)

    Question 81You need to create a Web Part that creates a copy of the out-of-the-box Contribute permis ...

  9. iOS开发Facebook POP动效库使用教程

    如果说Origami这款动效原型工具是Facebook Paper的幕后功臣,那么POP便是Origami的地基.感谢Facebook开源了POP动效库,让人人都能制作出华丽的动效.我们只需5步,便能 ...

  10. Silverlight项目笔记2:.svc处理程序映射缺失导致的WCF RIA Services异常

    在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相 ...