------- 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循环、方法的可变参数及静态导入相关推荐

  1. 黑马程序员——集合框架

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类集是一个动态对象数组,不受对象数组长度的限制. List集合里面的内容允许重复,Set集合不允 ...

  2. 黑马程序员————集合框架1(day14)

    ----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! 集合框架1 l  体系概述 l  共性方法 l  迭代 ...

  3. 黑马程序员——集合框架(二)

    ----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ package com.yang.ex; /*------Set:不包含重复 ...

  4. 黑马程序员————集合2(day17)

    ----------------------ASP.Net+Android+IOS开发----------------------期待与您交流! 集合2 l  Collections – sort l ...

  5. 黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!

    MyBaits 写在最前 本篇文章是我学完黑马程序员 JavaWeb MyBatis 的总结分享,定位呢是最大小白友好的快速入门,欢迎大家一起交流技术! 文章目录 MyBaits 代码仓库 MyBat ...

  6. 黑马程序员—[.Net就业薪资] 四个班100%就业,.Net学科称霸黑马

    文章来源:黑马程序员,黑马论坛 [.Net就业薪资] 四个班100%就业,.Net学科称霸黑马 四个班100%就业,.Net学科称霸黑马 作为.Net学科的就业指导老师,我也曾经被Android等其他 ...

  7. 黑马程序员--Foundation框架之--NSObject类

    ------IOS培训期待与您交流! ------- OC中的Foundation框架是系统提供的,他就相当于是系统的一套api,其内部有很多现有的类和功能提供给我们使用. 那么今天首先来介绍一下Fo ...

  8. 黑马程序员--Foundation框架之--NSArray类以及它的子类NSMutableArray类

    ------IOS培训期待与您交流! ------- 今天我们继续来看一下Foundation框架中的NSArray类和 NSMutableArray类,NSArray类 是不可变的,NSMutabl ...

  9. 黑马程序员——集合Collection:体系详述

    ------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...

最新文章

  1. WPF的图片操作效果(一):RenderTransform
  2. 谷歌AI乳腺癌检测超过人类,LeCun质疑引起讨论
  3. solidworks钣金插件_高效掌握SolidWorks钣金零件加工设计概念
  4. yii2使用select2
  5. hbase 读写调优_hbase优化操作与建议
  6. 模板:树上启发式合并(dsu on tree)
  7. javascript设计模式_JavaScript 设计模式 学习总结
  8. 一个可变布局列表,有9种布局item大小,每个item可拖拽切换位置
  9. MySQL执行计划 EXPLAIN参数
  10. u检验中的查u界值表_延边双壁波纹管pvc-u
  11. Linux复习-shell程序设计
  12. 深搜和广搜--原理彼此的优缺点
  13. 一张图看懂Resnet50与Resnet101算法
  14. 微信服务号认证收费 :一场激进的自卫战
  15. mysql多表关联数据删除
  16. Ubuntu下解压rar的分卷文件 faster_rcnn_models.part1.rar
  17. canopen服务器协议,CANopen协议详情讲解.docx
  18. win10 文件图标变白的解决方法
  19. Reliable, Scalable, and Maintainable Applications 高可靠、易扩展、易运维应用
  20. btrace安装,配置,使用,常见异常,解除安全限制

热门文章

  1. SpringMVC之拦截器和异常处理
  2. Oracle就业课第四课之子程序
  3. 5G时代谁的天下???
  4. python 完全面向对象_python 面向对象(一)
  5. 单位阶跃信号是周期信号吗_集成墙板会影响手机信号吗?
  6. Nginx-Lua重定向系列
  7. Vue学习(watch、computed、生命周期、filter)- 学习笔记
  8. 《剑指offer》最小的k个数
  9. 关于kafka中的timestamp与offset的对应关系
  10. AdapterView及其子类之二:使用ListActivity及ArrayAdapter创建列表