Java学习笔记124——集合—增强for循环、静态导入
2021/12/22 22:22:14
本文主要是介绍Java学习笔记124——集合—增强for循环、静态导入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
增强for循环
import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; /* JDK1.5之后出现的特性, 到目前为止,学过哪些特性是JDK1.5之后出现的: 泛型,增强for,包装类,Scanner,枚举 增强for概述 简化数组和Collection集合的遍历 格式: for(元素数据类型 变量名(自定义) : 数组或者Collection集合) { 使用变量即可,该变量就是元素 } 好处:简化遍历 注意事项:增强for的目标要判断是否为null 把前面的集合代码的遍历用增强for改进 将来能用增强for的时候,就用,可以消除黄色警告线。 */ public class ForDemo1 { public static void main(String[] args) { //定义一个数组 int[] arr = {1,2,3,4,5,6}; //普通for循环 // for(int i=0;i<arr.length;i++){ // System.out.println(arr[i]); // } // System.out.println("使用增强for循环遍历:"); for(int x : arr){ System.out.println(x); } System.out.println("================================="); ArrayList<String> strings = new ArrayList<>(); strings.add("hello"); strings.add("world"); strings.add("java"); strings.add("bigdata"); strings.add("hadoop"); for (String string : strings) { System.out.println(string); } //假设我一不小心将null赋给了strings // strings = null; //NullPointerException--空指针异常 // for(String s : strings){ // System.out.println(s); // } //很可能我在遍历之前不知道strings是不是null //所以我们在遍历之前需要判断一下strings是不是为null if(strings!=null){ for (String s : strings){ System.out.println(s); } } //增强for循环其实就是用来替代迭代器的 //怎么去验证呢? //并发修改异常验证 // for(String s:strings){ // //ConcurrentModificationException--并发修改异常 // if("world".equals(s)){ // strings.add("spark"); // } // } //如果我想在遍历到"world"的时候在后面添加"spark" //这时候就只能使用迭代器了 // ListIterator<String> iterator = strings.listIterator(); // while (iterator.hasNext()){ // String next = iterator.next(); // if("world".equals(next)){ // iterator.add("spark"); // } // } } }
静态导入
//我也可以自己定义一个类 public class StaticClass { public static void show(String s){ System.out.println("这是自己定义类中的show方法"+s); } public static String fun(){ return "你是一个大帅哥"; } } /* 静态导入: 静态导入概述 格式:import static 包名….类名.方法名; 可以直接导入到方法的级别 注意事项 方法必须是静态的 如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。 由此可见,意义不大,所以一般不用,但是要能看懂。 */ //如果我静态导入的时候将方法名换成 * ,这时候我就可以使用Math类中的任意方法,而且都不用通过类名调用 import static java.lang.Math.abs;//--静态导入 import static com.shujia.wyh.day24.StaticClass.fun;//--静态导入自己定义的类的静态方法 import static com.shujia.wyh.day24.StaticClass.show;//--静态导入自己定义的类的静态方法 public class StaticImportDemo { public static void main(String[] args) { //Math.abs()--求绝对值 System.out.println(Math.abs(-100)); //Math.pow()--x的y次方 //例如:Math.pow(2, 3)--2的3次方 System.out.println(Math.pow(2, 3)); //Math.max()--求最大值 System.out.println(Math.max(200, 300)); //有没有什么办法,不用写类名,直接写方法名调用 //直接不写的话,不行,找不到方法 //System.out.println(abs(-100)); //这时候,静态导入的作用来了 //当我将abs()静态导入之后,我就可以不加类名直接调用 System.out.println(abs(-100)); //当我将静态导入的格式中的方法名换成 * //这时候我就能使用Math类中的任意方法,而且都不用通过类名调用 //但是这样有个缺点,假设将来你需要将这个Java项目打成架包了,这时候 //会将Math类中的所有方法都拿过来,这样你的架包就会显得很臃肿。 //所以说建议将来需要用什么方法就导入什么方法。 // System.out.println(pow(2,5)); //我也可以自己定义一个类 //通过类名来调用类中静态的成员方法 // System.out.println(StaticClass.fun()); //还可以静态导入自己定义的类的静态方法 System.out.println(fun()); //当静态导入的方法名与本类中的方法名冲突了, //调用的是本类中的方法 show("flink"); //如果我就想使用静态导入的方法怎么办? //将前缀路径写完整 com.shujia.wyh.day24.StaticClass.show("flink"); //或者 类名.静态成员方法名 StaticClass.show("spark"); } public static void show(String s) { System.out.println("这是在当前类中的show方法" + s); } }
这篇关于Java学习笔记124——集合—增强for循环、静态导入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门