---------android培训、java培训、期待与您交流! ----------
一.集合框架的工具类:内部封装好的静态功能
1.Collections:用于操作集合的工具类
List<String> list = new ArrayList<String>();
.....
①Collections.sort(list),对容器中元素按自然顺序排序
②Collections.max(list),获取list容器中元素的最大值
③Collections.binarySearch(list,"指定对象"),二分查找(查找指定对象),返回负数表示要查找对象不存在
④Collections.fill(list,"指定对象"),替换,将list中元素全部替换为指定对象
Collections.replaceAll(list,oldObj,newObj),替换,将list中指定元素替换为新对象
⑤Collections.reverse(list),反转,交换集合中元素位置
⑥Collections.reverseOrder(new 比较器对象()),返回一个比较器,将按照指定比较器强行逆转元素的顺序
⑦Collections.synchronizedList(list),返回一个线程安全的集合
⑧Collections.swap(list,index1,index2),为指定位置换位置
⑨Collections.shuffle(list),将list集合中的元素位置随机化
2.Arrays:用于操作数组的工具类
String[] str = {"aa","bb","cc"};
①Arrays.sort(str),将数组中元素排序,也可以传入参数按指定位置排
②Arrays.fill(str),替换数组中的元素
③Arrays.asList(str):返回一个泛型集合,把数组变成集合可以使用集合的思想和方法来操作数组
ArrayList<String> al = Arrays.asList(str); //但不能进行增加删除操作.
//把数组变集合,数组中的对象会直接转成集合中的对象
④集合转成数组:为了限定对元素的操作
ArrayList<String> al = new ArrayList<String>();
al.toArray(new String[al.size()]); //指定数组的长度为集合的长度
⑤高级for循环:for(数据类型 变量名 : 被遍历的集合或数组){...}
这种遍历方式虽然简化了代码,但有局限性,即它只获取元素,而不能操作元素
和传统for的区别:高级for必须有被遍历的目标,所以在遍历数组时最好使用传统for
⑥可变参数:JDK1.5版本后出现的新特性,是数组的简写形式,只需将要操作的元素作为参数传递即可
public void show(String str,int... arr) //可变参数一定要在列表的最后面
3.静态导入:(import static java.lang.System.*) ,导入的是类中所有的静态成员
①当类名重名时,需要指定具体的包名
②当方法名重名时,需要指定所属的对象或者类
二.其他对象
1.System对象:描述一些系统信息,它的属性和方法都是静态的
①System.getProperties():获取系统属性信息,返回Properties对象(Properties是Map集合的一个子类对象)
Properties p = System.getProperties(); //该集合中存储的都是字符串,没有泛型定义
②System.setProperty("myKey","myValue"):自定义系统信息,系统启动时,会加载
③System.getProperty("指定属性"):获取指定属性信息
2.Runtime对象:不可以new对象,类似单例设计模式
Runtime r = Runtime.getRuntime();
Process p = r.exec("可执行命令");//exec方法用于执行命令,返回一个进程
p.destory(); //杀掉子进程
3.Date对象:对日期和时间进行描述
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss");
//E为星期;HH表示二十四小时进制;hh表示十二小时进制
System.out.print(sdf.format(d));
4.Calender对象:描述日历,可以用查表法替换月、日、星期等
Calender c = Calender.getInstance();
c.get(Calender.YEAR);
c.get(Calender.MONTH);//取值范围0-11
c.get(Calender.DAY_OF_MONTH);
c.get(Calender.DAY_OF_WEEK);
c.add("指定年/月/日",number);//在指定年/月/日加上number年/月/日,时间的偏移
5.Math:是一个工具类
Math.abs(); //返回一个数的绝对值
Math.ceil();//向上取整数
Math.floor();//向下取整
Math.round();//四舍五入
Math.pow(m,n);//返回m的n次幂
Math.random();//返回0-1间的随机数
//Random r = new Random();
r.nextInt(10);//返回0-9之间的随机整数
三.IO(Input Output)流:用于操作数据
1.概述
①按操作数据可分:字符流、字节流
字节流的抽象基类:InputStream、OutputStream
字符流的抽象基类:Reader、Writer
②按流向可分:输入流、输出流
③FileWriter:是Writer的子类对象,后缀名是父类名,前缀名是该流的功能
FileWriter fw = newFileWriter("要操作的文件");//FileWriter一初始化,必须指定要操作的文件。如果文件存在,会自动覆盖文件;如果不存在会自动创建到指定目录。
fw.write("abcdefg");//写入数据
fw.newLine();//一行一行的写入
fw.flush();//刷新
fw.close();//关闭流
2.IO异常处理方式
FileWriter fw = null ;
try{
fw = new FileWriter("要操作的文件"); //文件操作代码
fw.write("abcefd");
....
}catch(IOException e){
//异常处理
}
finally{
try{
if(fw!=null) //避免空指针异常
fw.close(); //必须关闭流对象
}catch(IOException e){
//异常处理
}
}
3.文件的续写:对已有文件的数据读写
FileWriter fw = new FileWriter("a.txt",true);//true表示将write的内容续写到a.txt末尾,不覆盖a.txt
4.文件的读取
FileReader fr = new FileReader();
char[] ch = new char[1024];//中转站数组
int num = 0;
while((num=fr.read(ch))!=-1){
System.out.print(new String(ch,0,num));
}
fr.close();
5.文件拷贝
FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("a.txt");
fw = new FileWriter("b.txt");
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1){
fw.write(buf,0,len);
....
}
}catch(IOException e){
//异常处理
}
finally{
try{
if(fr!=null){
fr.close();
}
if(fw!=null){
fw.close();
}
}catch(IOException e){
//异常处理
}
}
---------android培训、java培训、期待与您交流! ----------