java 16 - 9 增强for的概述和使用
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的概述和使用的更多相关文章
- Java 16 新特性:instanceof增强
instanceof这个关键词,主要用来判断某个对象是不是某个类的实例. 比如,有时候我们要处理一个类似这样的数据集: Map<String, Object> data = new Has ...
- java高级特性增强
第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...
- [转帖]Java虚拟机(JVM)体系结构概述及各种性能参数优化总结
Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知 ...
- 官方正式发布 Java 16
前言 就在2021/03/16,官方正式发布了Java 16.我们可以下载使用Java 16了. 特性 向量API(孵化) 在运行期,Vector 表示向量计算可以可靠地编译成支持CPU架构上的最佳矢 ...
- Java:ConcurrentHashMap类小记-1(概述)
Java:ConcurrentHashMap类小记-1(概述) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentHas ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
- (一)一起学 Java Collections Framework 源码之 概述
. . . . . 目录 (一)一起学 Java Collections Framework 源码之 概述 JDK 中很多类 LZ 已经使用了无数次,但认认真真从源码级研究过其原理的还只占少数,虽然从 ...
- MD5、SHA1加密java 16位32位
MD5.SHA1加密java 16位32位 import java.math.BigInteger; import java.security.MessageDigest; public class ...
- java 16进制与字符串直接相互转换
java 16进制与字符串直接相互转换 CreationTime--2018年7月12日09点39分 Author:Marydon 1.16进制转换成字符串 /** * 16进制直接转换成为字符串 ...
随机推荐
- 一些arcgis符号库干货
分享一些arcgis符号库干货,自己也可以参考网上的教程自己做,但尽量要符合标准规范. 下面是一些符号示例(并不一定是官方标准的): 土地利用总体规划图 水土保持图 1:5万土地利用现状 1:1万地形 ...
- 安卓开发_浅谈ContextMenu(上下文菜单)
长下文菜单,即长按view显示一个菜单栏 与OptionMenu的区别OptionMenu对应的是activity,一个activity只能拥有一个选项菜单ContextMenu对应的是View,每个 ...
- 推导大O阶方法
用大写O()来体现算法时间复杂度的记法,我们称之为大O阶记法. O(1)叫做常数阶:O(n)叫做线性阶:O(n^2)叫做平方阶. 1.用常数1取代运行时间中的所有加法常数. 2.在修改后的运行次数函 ...
- batch_size 和 fetch_size作用
hibernate抓取策略,,batch-szie在<class>上的应用 batch-size属性,可以批量加载实体类, hbm.xml classes.hbm.xml <?xml ...
- iOS edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解
edgesForExtendedLayout: 在IOS7以后 ViewController 开始使用全屏布局的,而且是默认的行为通常涉及到布局,就离不开这个属性 edgesForExtendedLa ...
- iOS开发笔记3:XML/JSON数据解析
这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...
- jQuery点击事件绑定onClick和on()
一.静态绑定 (1)onclick方法 jsp代码 <button href="javascript:;" class="weui_btn weui_btn_min ...
- I/O多路复用——epoll函数
1 select的低效率 select/poll函数效率比较低,主要有以下两个原因: (1)调用select函数后需要对所有文件描述符进行循环查找 (2)每次调用select函数时都需要向该函数传递监 ...
- Entity Framework中的Identity map和Unit of Work模式
阅读目录: 一.什么是Identity map模式 二.关于Identity map模式的验证示例 三.Unit of Work 模式 四.总结和注意的问题 一,什么是Identity map模式 I ...
- C#初级知识点整理及VS的简单使用
C#预处理器指令#define #undef 声明一个不需赋值的变量注意的一点事它必须放到using 上面,如 #define TEST using System.xxx; public class ...