黑马程序员--集合工具类、其他对象、IO流概述
2012-10-14 18:12
411 查看
---------android培训、java培训、期待与您交流!
----------
一.集合框架的工具类:内部封装好的静态功能
1.Collections:[b]用于操作集合的工具类[/b]
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"};
[b]①Arrays.sort(str),将数组中元素排序,也可以传入参数按指定位置排[/b]
[b] [b]②Arrays.fill(str),替换数组中的元素[/b][/b]
[b][b] [b]③Arrays.asList(str):返回一个泛型集合,把数组变成集合可以使用集合的思想和方法来操作数组[/b][/b] [/b]
ArrayList<String> al = [b]Arrays.asList(str); //但不能进行增加删除操作.[/b]
//把数组变集合,数组中的对象会直接转成集合中的对象
[b][b][b] [b]④集合转成数组:为了限定对元素的操作[/b][/b][/b][/b]
[b][b][b][b] ArrayList<String> al = new
ArrayList<String>();[/b][/b][/b][/b]
[b][b][b][b] al.toArray(new String[al.size()]);
//指定数组的长度为集合的长度[/b][/b][/b][/b]
[b][b][b][b] [b]⑤高级for循环:for(数据类型
变量名 : 被遍历的集合或数组){...}[/b][/b][/b][/b][/b]
[b][b][b][b][b]
这种遍历方式虽然简化了代码,但有局限性,即它只获取元素,而不能操作元素[/b][/b][/b][/b][/b]
[b][b][b][b][b]
和传统for的区别:高级for必须有被遍历的目标,所以在遍历数组时最好使用传统for[/b][/b][/b][/b]<
4000
/strong>
[b][b][b][b][b]
[b]⑥可变参数:JDK1.5版本后出现的新特性,是数组的简写形式,只需将要操作的元素作为参数传递即可[/b][/b][/b][/b][/b][/b]
[b][b][b][b][b][b]
public void show(String str,int... arr) //可变参数一定要在列表的最后面[/b][/b][/b][/b][/b][/b]
3.静态导入:(import static java.lang.System.*) ,导入的是类中所有的静态成员
[b]
①当类名重名时,需要指定具体的包名[/b]
[b]②当方法名重名时,需要指定所属的对象或者类[/b]
二.其他对象
1.System对象:描述一些系统信息,它的属性和方法都是静态的
[b]①System.getProperties():获取系统属性信息,返回Properties对象(Properties是Map集合的一个子类对象)[/b]
[b]Properties p = System.getProperties(); //该集合中存储的都是字符串,没有泛型定义[/b]
[b]②[b]System.setProperty("myKey","myValue"):自定义系统信息,系统启动时,会加载[/b][/b]
[b]③[b]System.getProperty("指定属性"):获取指定属性信息[/b][/b]
2.Runtime对象:不可以new对象,类似单例设计模式
Runtime r = Runtime.getRuntime();
Process p =[b] r.exec("可执行命令");//exec方法用于执行命令,返回一个进程[/b]
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.概述
[b]①按操作数据可分:字符流、字节流[/b]
字节流的抽象基类:InputStream、OutputStream
字符流的抽象基类:Reader、Writer
[b]②按流向可分:输入流、输出流[/b]
[b]③FileWriter:是Writer的子类对象,后缀名是父类名,前缀名是该流的功能[/b]
[b]
FileWriter fw = new[b]FileWriter("要操作的文件");//[b]FileWriter一初始化,必须指定要操作的文件。如果文件存在,会自动覆盖文件;如果不存在会自动创建到指定目录。[/b][/b][/b]
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培训、期待与您交流!
----------
----------
一.集合框架的工具类:内部封装好的静态功能
1.Collections:[b]用于操作集合的工具类[/b]
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"};
[b]①Arrays.sort(str),将数组中元素排序,也可以传入参数按指定位置排[/b]
[b] [b]②Arrays.fill(str),替换数组中的元素[/b][/b]
[b][b] [b]③Arrays.asList(str):返回一个泛型集合,把数组变成集合可以使用集合的思想和方法来操作数组[/b][/b] [/b]
ArrayList<String> al = [b]Arrays.asList(str); //但不能进行增加删除操作.[/b]
//把数组变集合,数组中的对象会直接转成集合中的对象
[b][b][b] [b]④集合转成数组:为了限定对元素的操作[/b][/b][/b][/b]
[b][b][b][b] ArrayList<String> al = new
ArrayList<String>();[/b][/b][/b][/b]
[b][b][b][b] al.toArray(new String[al.size()]);
//指定数组的长度为集合的长度[/b][/b][/b][/b]
[b][b][b][b] [b]⑤高级for循环:for(数据类型
变量名 : 被遍历的集合或数组){...}[/b][/b][/b][/b][/b]
[b][b][b][b][b]
这种遍历方式虽然简化了代码,但有局限性,即它只获取元素,而不能操作元素[/b][/b][/b][/b][/b]
[b][b][b][b][b]
和传统for的区别:高级for必须有被遍历的目标,所以在遍历数组时最好使用传统for[/b][/b][/b][/b]<
4000
/strong>
[b][b][b][b][b]
[b]⑥可变参数:JDK1.5版本后出现的新特性,是数组的简写形式,只需将要操作的元素作为参数传递即可[/b][/b][/b][/b][/b][/b]
[b][b][b][b][b][b]
public void show(String str,int... arr) //可变参数一定要在列表的最后面[/b][/b][/b][/b][/b][/b]
3.静态导入:(import static java.lang.System.*) ,导入的是类中所有的静态成员
[b]
①当类名重名时,需要指定具体的包名[/b]
[b]②当方法名重名时,需要指定所属的对象或者类[/b]
二.其他对象
1.System对象:描述一些系统信息,它的属性和方法都是静态的
[b]①System.getProperties():获取系统属性信息,返回Properties对象(Properties是Map集合的一个子类对象)[/b]
[b]Properties p = System.getProperties(); //该集合中存储的都是字符串,没有泛型定义[/b]
[b]②[b]System.setProperty("myKey","myValue"):自定义系统信息,系统启动时,会加载[/b][/b]
[b]③[b]System.getProperty("指定属性"):获取指定属性信息[/b][/b]
2.Runtime对象:不可以new对象,类似单例设计模式
Runtime r = Runtime.getRuntime();
Process p =[b] r.exec("可执行命令");//exec方法用于执行命令,返回一个进程[/b]
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.概述
[b]①按操作数据可分:字符流、字节流[/b]
字节流的抽象基类:InputStream、OutputStream
字符流的抽象基类:Reader、Writer
[b]②按流向可分:输入流、输出流[/b]
[b]③FileWriter:是Writer的子类对象,后缀名是父类名,前缀名是该流的功能[/b]
[b]
FileWriter fw = new[b]FileWriter("要操作的文件");//[b]FileWriter一初始化,必须指定要操作的文件。如果文件存在,会自动覆盖文件;如果不存在会自动创建到指定目录。[/b][/b][/b]
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培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员——Java基础--集合框架工具类:Collections、Arrays、其他对象
- 黑马程序员——Java基础——集合工具类Collecions、Arrays、其他对象System类、Runtime类、Date类、Calendar类、Math类等操作
- 黑马程序员--java基础复习集合框架工具类及其他对象
- 19-集合框架工具类-16-常用对象API(集合框架-工具类-Collections-其他方法&将非同步集合转成同步集合的方法)
- 16-常用对象API(集合框架-工具类-Collections-其他方法&将非同步集合转成同步集合的方法) 17-常用对象API(集合框架-工具类-Arrays-方法介绍)_20171202
- 黑马程序员——java第十七天:集合框架(Collections和其他对象)
- 黑马程序员java学习笔记——Collections、Arrays工具类和其他对象
- 黑马程序员15.其他对象&IO流
- 黑马程序员_其他流对象 集合IO复习
- 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API
- 黑马程序员——第十三篇:字符缓冲流、IO流练习、其他流对象
- 黑马程序员--Java面向对象——IO流其他对象
- 黑马程序员——Java基础---Collections,Arrays工具类以及其他对象
- 黑马程序员——Java基础---io流(io中的其他对象)
- 黑马程序员_Java基础_其他对象及IO流(一)_18
- 黑马程序员_day18 其他对象和IO流)
- AdaultBird--我的黑马程序员之路!Chapter7---File类,IO流里的其他工具类,GUI
- 黑马程序员-----集合框架(Collections,Arrays,for循环等和其他对象)
- 黑马程序员——JAVA基础——集合---概述、Collection中共性方法、List、Map、工具类Collections和Arrays
- 黑马程序员——集合、集合框架工具类(collections和Arrays)和其他对象