您的位置:首页 > 职场人生

黑马程序员--集合工具类、其他对象、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培训、期待与您交流!
----------    

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐