我们已经知道了集合中的ArrayList、LinkedList、HashMap、TreeMap、HashSet、TreeMap的用法,还知道它们的父类接口分别是List、Map、Set,但还有个所有集合的父类接口Collection,接下来会介绍Collection的集合工具类Collections,它可以调用静态方法,操作集合元素。
另外,还有一些其他语法:for-each循环、可变长参数、泛型、enum枚举和异常。
工具/原料
- JDK、eclipse、android SDK、ADT
一、集合工具集(数据结构工具)
-
java.util.Iterator(接口):
方法:
hasNext():判断是否有下一条数据。
next():取出下一条数据。
void remove():移除刚刚取出的数据,无返回值。
步骤阅读
-
java.util.Collections(集合工具类):
Collections静态方法:
allAll(Collection,值1,值2,值3......):添加数据。
binarySearch(List,数据):二分法查找。
fill(List,数据):将现有数据全部替换。
max(List):按默认排序规则(首字母)取最大值。
min(List):按默认排序规则(首字母)取最小值。
reverser(List):倒序。
sort():按默认排序。
sort(List,comparator):按比较器排序(回调方法)。
shuffle():打乱。
swap(List list,int i,int j):在指定列表的指定位置交换元素。
步骤阅读
END
二、其他语法
-
for-each循环:数组遍历、集合迭代遍历的语法简化。
数组遍历:
for(int i=0;i<arr.length;i++){
arr[i];
}
简化为:
for(String str:arr){
循环语句;处理str;
}
集合遍历:
for(Interator<String> it=list.interator();it.haxNext();){
it.next();
}
简化为:
for(String str:list){
循环语句;处理str;
}
步骤阅读
-
可变长参数(本质是个数组):
定义可变长数组,可以使用f()定义,如f(1,2,3......)。
void f(int... arr){
arr[0]
arr[arr.length-1]
步骤阅读
-
泛型:
是一种编译期语法,防止程序在编译时出错。也是一种类型参数,可以将任意类型传参进来,定义类型时可以用一个大写字母。
class A<LeiXing>{
LeiXing a;
void LeiXing f(LeiXing x){
}
}
<?>:某种特定类型,任何类型都不能放入,只能放入唯一一个引用类型:null。
<? extends Number>:某种Number的子类型。
<E>:该泛型可以定义“返回值”类型。
步骤阅读
步骤阅读
步骤阅读
步骤阅读
步骤阅读
-
enum枚举(本质是个类,每个枚举选项,都是这个类的对象。):
是一组固定选项,代替数字代码常量的用法。
定义枚举:返回值类型定义为枚举名称。
public enum Type{
COLD,HEAT,NUCLEAR
}
调用时:Type.COLD、Type.HEAT、Type.NUCLEAR
注:switch case中不能加枚举名和点,只能写枚举选项(常量)。
枚举的创建:
第一步:创建枚举类。
第二步:使用枚举类当做返回值类型。
步骤阅读
步骤阅读
步骤阅读
步骤阅读
END
三、异常
-
异常类在java.lang下,对错误信息的封装对象,错误信息包含:异常类型、提示消息、行号。
步骤阅读
-
①处理异常:
try{
执行可能出错的代码;
}catch(Exception e){
处理异常语句;
}finally{
处理异常必须执行的语句(一般执行内存清理工作);
}
或者直接这样写:
try{执行可能出错的代码;}finally{想让用户看到的语句;}
②异常方法:
getMessage():获得提示信息
printStackTrace():打印完整异常信息
步骤阅读
END
注意事项
- 由于编程习惯,防止引用常量时不写常量名直接写值,所以推荐尽量用枚举代替常量值。
- 在android项目开发时关注异常信息会事半功倍。
- 泛型是编译期语法,防止程序在编译时出错,所以也要尽量使用泛型。
本文来自投稿,不代表幸运快三立场,转载请注明出处:http://www.www.morucat.com/digital/8688.html