(80)高级for循环(尤其是在集合中的简写形式)、可变参数、静态导入
来源:互联网 发布:阿里云市场 怎么用 编辑:程序博客网 时间:2024/05/16 12:04
一、高级for循环
①格式:for(数据类型 变量名:被遍历的集合(Collection)或者数组)
{
}
②例子演示(在list、set中对输出简化)
Collection<String> coll=new ArrayList<String>(); coll.add("abc"); coll.add("a"); coll.add("cc"); for(String s:coll) { System.out.println(s); }
③对集合进行遍历,只能获取元素,但是不能对集合进行操作。
迭代器除了遍历,还可以remove集合中元素的动作。
如果使用ListIterator,还可以在遍历过程中对集合进行增删改查操作。
④传统for和高级for有什么区别呢?
高级for有一个局限性,必须有被遍历的目标
⑤建议是:在遍历数组时还是使用传统方式,因为传统for可以定义脚标,可对脚标的元素或者脚标进行操作
在map集合中用foreach简化
HashMap<Integer,String> hm=new HashMap<Integer,String>(); hm.put(1, "a"); hm.put(2, "abc"); hm.put(3, "c"); //第一种方法简化 Set<Integer> ks=hm.keySet(); for(Integer i:ks) { sop(hm.get(i)); } //第二种方法原 Set<Map.Entry<Integer, String>> s3=hm.entrySet(); Iterator<Map.Entry<Integer, String>> it3=s3.iterator(); while(it3.hasNext()) { Map.Entry<Integer, String> me=it3.next(); sop("键:"+me.getKey()+" 值:"+me.getValue()); } //第二种方法简化 for(Map.Entry<Integer,String> me : hm.entrySet()) { System.out.println(me.getKey()+"------"+me.getValue()); }
二、可变参数
在重载函数中,有种形式,只是参数个数不同,参数类型等都是相同的,写重载是比较麻烦的。可以将数据放入数组中,这样写一个方法,形式参数为数组,这样可以简化书写。但是若操作的数据个数不同,还需要创建不同长度的数组,再调用方法,也比较麻烦。
在JDK1.5版本后出现了新方法,以下进行演示:
可变参数其实就是数组参数的简写形式,不用每一次手动的建立数组对象,只要将要操作的元素作为参数传递即可,隐式将这些参数封装成了数组。
形式:数据类型…变量名称
注意事项:在使用这个新特性时,可变参数一定要定义在参数列表的在后面。
public static void main(String[] args) { show();//0 show(2,3,4);//3 show(2,3,5,6);//4}public static void show(int...arr) { System.out.println(arr.length); //其他语句;}}
三、静态导入
①当类名重名时,要指定具体的包名。
packa/Demo.class
packb\Demo.class
要创建b包下的Demo类对象写法:new packb.Demo();
②当方法重名时,指定具备所属的对象或者类
import java.util.*;public class kebianshuzu {public static void main(String[] args) { int[] arr= {1,2,3,4}; Arrays.sort(arr); int index=Arrays.binarySearch(arr, 3); System.out.println(Arrays.toString(arr)); System.out.println("index="+index); }
以上使用的方法均为静态,每次都得写Arrays类,比较麻烦,要想到静态导入。
import java.util.*;//若没有写static 则导入的全是类import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态方法import static java.lang.System.*;//简写输出语句public class Demo {public static void main(String[] args) { int[] arr= {1,2,3,4}; sort(arr); int index=binarySearch(arr, 3); out.println(Arrays.toString(arr)); out.println("index="+index);
Arrays.toString(arr):不能省略Arrays,原因是Demo类默认继承了Object类,其有toString命名的方法,Arrays中也有该名称的方法,所以方法名重名,要指定具备的类名或者对象名。
- (80)高级for循环(尤其是在集合中的简写形式)、可变参数、静态导入
- 黑马程序员--学习笔记(集合框架中的两个工具类,高级for循环,可变参数,静态导入)
- Java基础17:集合工具类Collections;高级for循环;静态导入;可变参数
- 集合collections(Arrays,aList,toArray) 高级for循环 可变参数 静态导入
- 黑马程序员:高级for循环,可变参数,静态导入
- 工具类 Collections Arrays asList 数组变集合 集合变数组 高级for循环 可变参数 。。。 静态导入
- 静态导入、可变参数、增强for循环
- 静态导入\可变参数\增强for循环
- 黑马程序员------集合(No.2)(Collections、Arrays、集合与数组转换、高级for、可变参数、静态导入)
- java第十六天_工具类Collections和Arrrays,高级for循环,可变参数,静态导入
- 黑马程序员_集合4(高级for,可变参数,静态导入,Date,Calendar,Math,System,RunTime)
- 【17】集合4_Collections,Arrays工具类,高级For,可变参数,静态成员导入
- 黑马程序员_集合(高级for,可变参数,静态导入,Date,Calendar,Math,System,RunTime)
- Java基础之集合框架(四)--Collections、Arrays、增强for循环、可变参数、静态导入
- 黑马程序员——>第十七天<集合(Collections-增强for循环-可变参数-静态导入)>
- Java基础之集合框架(四)--Collections、Arrays、增强for循环、可变参数、静态导入
- 集合框架__JDK1.5新特性__【增强for循环】【可变参数】【静态导入】
- 黑马程序员-Java的集合类(泛型、可变参数、for-each循环和静态导入)
- gcc -fPIC 选项
- face++人脸识别接口实现原理(一)
- 技巧篇
- Insertion sort | Iterative & Recursive
- 一分钟了解“表示优点/缺点/特性 的词汇”
- (80)高级for循环(尤其是在集合中的简写形式)、可变参数、静态导入
- shell的变量
- 分支管理-解决冲突
- SAX解析XML
- 26.获取系统联系人ContentProvider
- matlab用傅里叶变换实现图像的低通滤波
- Linux常用的命令
- 一分钟了解“表示优秀的词汇”
- springmvc+mybatis整合思路