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. MessageBox的Buttons和三级联动

    一.MessageBox的Buttons MessageBox.Show可以出现有按钮的对话框 例如: DialogResult dr = MessageBox.Show("是否要继续吗?& ...

  2. swift学习笔记之-枚举

    //枚举定义 import UIKit //枚举定义 (枚举.结构体.类的名字首字母必须大写,表示为定义了新的类型) /*枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来 ...

  3. Eclipse反编译工具Jad及插件JadClipse配置

    Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的插件JadClipse ...

  4. 快速生成PDF书签

    PDF没有书签,就像吃饭没有筷子一样,虽然可以将就,但总不是很方便!现介绍一种快速生成书签的方法. 第一步,打开excel,制作书签目录,前面的一列是书签名称(黑色框),后面一列是PDF页码(红色框) ...

  5. 配置windows失败,还原更新,请勿关机

    同事叫我帮忙弄一下电脑,开机,出现"配置Windows Update失败,还原更改,请勿关闭计算机",我从来不更新Windows Update,更新都为成功,第一次遇到失败了,不知 ...

  6. IOS客户端Coding项目记录(四)

    1:打开Xcode,然后闪退,报加载某库出现异常 如/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc ...

  7. 安装VVDocumenter-Xcode-master (Xcode 7.1)的过程

    下载地址: http://pan.baidu.com/s/1boxvewB 1.首先下载解压压缩包打开VVDocumenter工程,编译一遍(快捷键com+B) 2.在finder里面的应用程序,找到 ...

  8. android学习笔记 activity生命周期&任务栈&activity启动模式

    activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序 ...

  9. IOS之UI -- UITableView -- 1 -- 相关初识

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  10. android 之 animations 动画

    android 提供的了两种机制你可以用来创建简单的动画:tweedned animation(渐变动画) 和 frame-by-frame animation(逐帧动画)(有道翻译的,汗!!!) . ...