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进制直接转换成为字符串 ...
随机推荐
- ubuntu定时执行脚本(crond)
如果发现您的系统里没有这个命令,请安装下面两个软件包. vixie-cron crontabs crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表.-u ...
- FEE Development Essentials
FEE Development Essentials JS Basic function call() and apply() func1.bind(thisObj,arg1...argn) Cust ...
- 挖掘机技术哪家强(c++实现)
描述:为了用事实说明挖掘机技术到底哪家强,组织一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入:输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位参赛者的 ...
- swift学习笔记之-自动引用计数
//自动引用计数 import UIKit /*自动引用计数(Automatic Reference Counting) 防止循环强引用 Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用 ...
- 修改list中附件排序(sharepoint 2010)
修改文件C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATE ...
- HillStone上网认证客户端
公司上网认证服务器从原来网康变更成山石(HillStone),原来网康是有认证客户端的,运行在系统托盘区,现在的Hillstone是通过网页页面认证的,要上网,这个认证页面就需要一直打开在那里.碰到异 ...
- 关于Kb/s,KB/s的一些知识
我们常见的有KB/s和Kb/s两种 1,Kb/s也就是Kbps.这里面小写的b是bit(比特)的缩写,是位的意思.一个位就是二进制的0或者1.一般代表传输单位,p就是/号,s是秒.bps就是b/s=比 ...
- IOS 欢迎页(UIScrollView,UIPageControl)
本文介绍了app欢迎页的简单实现.只有第一次运行程序时才说会出现,其余时间不会出现.下面是效果图. 代码如下:(如有不明白的可以评论我,我会详细讲解) // // ViewController.m / ...
- ListView嵌套出现的问题
项目中一个列表子项中也需要用到列表,这就不由得使我想到ListView的嵌套,其实这个东西想想也只是复杂了一点,并没有什么难的地方,可是却依然在这里狠狠滴栽个跟头.问题出在子列表动态展开的操作上.可能 ...
- NSArray,NSMutableArray的三种排序
int main(int argc, const char * argv[]) { @autoreleasepool { //字符串进行排序 NSArray *arr=@[@"b" ...