黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
------- android培训、java培训、期待与您交流! ----------
黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入
1.1 高级for循环(示例1)
格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
}
对集合进行遍历。
只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
1.1.2 传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标。
1 示例1: 2 import java.util.*; 3 4 class ForEachDemo 5 { 6 public static void main(String[] args) 7 { 8 9 10 ArrayList<String> al = new ArrayList<String>(); 11 12 al.add("abc1"); 13 al.add("abc2"); 14 al.add("abc3"); 15 16 17 for(String s : al) 18 { 19 //s = "kk"; 20 System.out.println(s); 21 } 22 23 System.out.println(al); 24 /* 25 Iterator<String> it = al.iterator(); 26 27 while(it.hasNext()) 28 { 29 System.out.println(it.next()); 30 } 31 */ 32 33 int[] arr = {3,5,1}; 34 35 for(int x=0; x<arr.length; x++) 36 { 37 System.out.println(arr[x]); 38 } 39 for(int i : arr) 40 { 41 System.out.println("i:"+i); 42 } 43 44 45 HashMap<Integer,String> hm = new HashMap<Integer,String>(); 46 47 hm.put(1,"a"); 48 hm.put(2,"b"); 49 hm.put(3,"c"); 50 51 Set<Integer> keySet = hm.keySet(); 52 for(Integer i : keySet) 53 { 54 System.out.println(i+"::"+hm.get(i)); 55 } 56 57 // Set<Map.Entry<Integer,String>> entrySet = hm.entrySet(); 58 // for(Map.Entry<Integer,String> me : entrySet) 59 60 for(Map.Entry<Integer,String> me : hm.entrySet()) 61 { 62 System.out.println(me.getKey()+"------"+me.getValue()); 63 } 64 65 } 66 }
PS:建议在遍历数组的时候,还是希望使用传统for。因为传统for可以定义脚标。
2.1方法的可变参数,JDK1.5版本出现的新特性(示例2)
在使用时注意:可变参数一定要定义在参数列表最后面。
1 示例2 2 class ParamMethodDemo 3 { 4 public static void main(String[] args) 5 { 6 //show(3,4); 7 /* 8 //虽然少定义了多个方法。 9 但是每次都要定义一个数组。作为实际参数。 10 11 int[] arr = {3,4}; 12 show(arr); 13 14 int[] arr1 = {2,3,4,5}; 15 show(arr1); 16 */ 17 18 /* 19 可变参数。 20 其实就是上一种数组参数的简写形式。 21 不用每一次都手动的建立数组对象。 22 只要将要操作的元素作为参数传递即可。 23 隐式将这些参数封装成了数组。 24 25 */ 26 show("haha",2,3,4,5,6); 27 //show(2,3,4,5,6,4,2,35,9,"heh"); 28 //show(); 29 30 } 31 public static void show(String str,int... arr) 32 { 33 System.out.println(arr.length); 34 } 35 /* 36 public static void show(int[] arr) 37 { 38 39 } 40 */ 41 /* 42 public static void show(int a,int b) 43 { 44 System.out.println(a+","+b); 45 } 46 public static void show(int a,int b,int c) 47 {} 48 */ 49 }
3.1 StaticImport 静态导入(示例3)
当类名重名时,需要指定具体的包名。
当方法重名是,指定具备所属的对象或者类
示例3: import java.util.*; import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。 import static java.util.Collections.*;import static java.lang.System.*;//导入了System类中所有静态成员。class StaticImport //extends Object {public static void main(String[] args) {out.println("haha");int[] arr = {3,1,5};sort(arr);int index = binarySearch(arr,1);out.println(Arrays.toString(arr));System.out.println("Index="+index);ArrayList al = new ArrayList();al.add(1);al.add(3);al.add(2);out.println(al);sort(al);out.println(al);} }
转载于:https://www.cnblogs.com/jiandonn/p/4578429.html
黑马程序员-----集合框架类(四) 高级for循环、方法的可变参数及静态导入相关推荐
- 黑马程序员——集合框架
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类集是一个动态对象数组,不受对象数组长度的限制. List集合里面的内容允许重复,Set集合不允 ...
- 黑马程序员————集合框架1(day14)
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! 集合框架1 l 体系概述 l 共性方法 l 迭代 ...
- 黑马程序员——集合框架(二)
----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ package com.yang.ex; /*------Set:不包含重复 ...
- 黑马程序员————集合2(day17)
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! 集合2 l Collections – sort l ...
- 黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!
MyBaits 写在最前 本篇文章是我学完黑马程序员 JavaWeb MyBatis 的总结分享,定位呢是最大小白友好的快速入门,欢迎大家一起交流技术! 文章目录 MyBaits 代码仓库 MyBat ...
- 黑马程序员—[.Net就业薪资] 四个班100%就业,.Net学科称霸黑马
文章来源:黑马程序员,黑马论坛 [.Net就业薪资] 四个班100%就业,.Net学科称霸黑马 四个班100%就业,.Net学科称霸黑马 作为.Net学科的就业指导老师,我也曾经被Android等其他 ...
- 黑马程序员--Foundation框架之--NSObject类
------IOS培训期待与您交流! ------- OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Fo ...
- 黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类
------IOS培训期待与您交流! ------- 今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutabl ...
- 黑马程序员——集合Collection:体系详述
------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...
最新文章
- WPF的图片操作效果(一):RenderTransform
- 谷歌AI乳腺癌检测超过人类,LeCun质疑引起讨论
- solidworks钣金插件_高效掌握SolidWorks钣金零件加工设计概念
- yii2使用select2
- hbase 读写调优_hbase优化操作与建议
- 模板:树上启发式合并(dsu on tree)
- javascript设计模式_JavaScript 设计模式 学习总结
- 一个可变布局列表,有9种布局item大小,每个item可拖拽切换位置
- MySQL执行计划 EXPLAIN参数
- u检验中的查u界值表_延边双壁波纹管pvc-u
- Linux复习-shell程序设计
- 深搜和广搜--原理彼此的优缺点
- 一张图看懂Resnet50与Resnet101算法
- 微信服务号认证收费 :一场激进的自卫战
- mysql多表关联数据删除
- Ubuntu下解压rar的分卷文件 faster_rcnn_models.part1.rar
- canopen服务器协议,CANopen协议详情讲解.docx
- win10 文件图标变白的解决方法
- Reliable, Scalable, and Maintainable Applications 高可靠、易扩展、易运维应用
- btrace安装,配置,使用,常见异常,解除安全限制