zoukankan      html  css  js  c++  java
  • 部分JDK1.5新特性,一些类(高级for,可变参数,静态导入,System,Runtime,Date,Math)

    高级for循环:

    格式:for(数据类型   变量名:被遍历的集合或者数组){           }

      1: 
    
      2: ArrayList<String> al=new ArrayList<String>();
    
      3: al.add("abc1");
    
      4: al.add("abc2");
    
      5: al.add("abc3");
    
      6: 
    
      7: //相当于Iterator的作用,将集合中的元素遍历,只能够获取元素而不能对集合进行操作
    
      8: //Iterator除了遍历以外,还可以remove集合中的元素
    
      9: for(String s:al)
    
     10: {
    
     11:   System.out.println(s);
    
     12: }
      1: 
    
      2: /*
    
      3: 高级for循环有局限性,必须要有遍历的对象,对于Map集合,不可以直接使用迭代器,因此也就不可以直接使用高级for
    
      4: */
    
      5: 
    
      6: HashMap<Integer,String> hm=new HashMap<Integer,String>();
    
      7: hm.put(1,"a");
    
      8: hm.put(2,"b");
    
      9: hm.put(3,"c");
    
     10: 
    
     11: //keySet的高级for
    
     12: Set<Integer> keySet=hm.keySet();
    
     13: for(Integer  i:keySet)
    
     14: {
    
     15:   System.out.println(i+"..."+hm.get(i));
    
     16: }
    
     17: 
    
     18: //entrySet的高级for
    
     19: for(Map.Entry<Integer,String> me:hm.entrySet())
    
     20: {
    
     21:   System.out.println(me.getKey()+me.getValue());
    
     22: }
    
     23: 

    可变参数:

      1: class Demo 
    
      2: {
    
      3:   public static void main(String[] args) 
    
      4:   {
    
      5:     show(2,3,4,5,6);
    
      6:     show(2,3,4,5,6,1,35,0);
    
      7:     //如果使用传统方法,需要每次都定义一个数组,作为实际参数
    
      8:     //如果使用可变参数,则不需要定义
    
      9:   }
    
     10: 
    
     11:   public static void show(int...arr)
    
     12:   {
    
     13:     for(int a:arr)
    
     14:     {
    
     15:       System.out.print(a);
    
     16:     }
    
     17: 
    
     18:     System.out.println();
    
     19:   }
    
     20: }
    
     21: 
    
     22: /*
    
     23: 注意:使用可变参数时,一定要定义在参数列表的最后面。
    
     24: */

    静态导入:staticImport

      1: 
    
      2: public static void main(String[] args)
    
      3: {
    
      4:   int[] arr={3,1,5};
    
      5:   //使用工具类时需要类名,多次使用就要多次写类名,重复
    
      6:   Arrays.sort(arr);
    
      7:   int index=Arrays.binarySearch(arr,1);
    
      8: 
    
      9:   System.out.println(Arrays.toString(arr));
    
     10:   System.out.println("index="+index);
    
     11: }
    
     12: 
      1: 
    
      2: //为了避免重复,可以将Arrays工具类静态导入。
    
      3: //导入的是Arrays类中的所有的静态方法
    
      4: import static java.util.Arrays.*;
    
      5: 
    
      6: public static void main(String[] args)
    
      7: {
    
      8:   int[] arr={3,1,4};
    
      9:   sort(arr);
    
     10:   int index=binarySearch(arr,1);
    
     11: 
    
     12:   //此处的Arrays不可省略,因为本身所有的类均继承于Object,Object类中也有toString方法
    
     13:   //如果省略掉类名,则默认使用Object类中的toString方法
    
     14:   System.out.println(Arrays.toString(arr));
    
     15:   System.out.println("index="+index);
    
     16: }

    System类:

    System描述系统的一些信息。

    获取系统的属性信息:getProperties( )方法,返回值为Properties(属性类);

      1: 
    
      2: public static void main(String[] args)
    
      3: {
    
      4:   Properties prop=System.getProperties();
    
      5:   //因为Properties是HashSet的一个子类,也就是Map集合的一个子类,因此可以通过操作Map的方法来取出该集合中的元素
    
      6:   for(Object obj:prop.keySet())
    
      7:   {
    
      8:     //该集合中存储的都是字符串,没有定义泛型,要进行类型转换
    
      9:     String value=(String)prop.get(obj);
    
     10:     System.out.println(obj+"..."+value);
    
     11:   }
    
     12: 
    
     13: }
      1: 
    
      2: //如何在系统中自定义一些特有信息?
    
      3: System.setProperty("mykey","myvalue");
    
      4: 
    
      5: //如何获取单个属性信息?
    
      6: System.getProperty("mykey");

    Runtime类:

    该类中并没有提供构造函数,说明不可以直接new对象,那么会提供一个静态方法来获取本类对象,返回值为本类类型。

    该方法为:static  Runtime  getRuntime(  );单例设计模式

      1: 
    
      2: public static void main(String[] args)throws Exception
    
      3: {
    
      4:   Runtime r=Runtime.getRuntime();
    
      5:   //执行扫雷程序
    
      6:   r.exec("winmine.exe");
    
      7: 
    
      8: }
    

    Date类:

      1: import java.util.*;
    
      2: import java.text.*;
    
      3: 
    
      4: 
    
      5: class DateDemo 
    
      6: {
    
      7:   public static void main(String[] args) 
    
      8:   {
    
      9:     Date d=new Date();
    
     10:     System.out.println(d);
    
     11: 
    
     12:     //将模式封装到SimpleDateFormat对象中,调用format方法,将模式格式化给定的Date对象
    
     13:     SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
    
     14:     sdf.format(d);
    
     15:   } 
    
     16: }
    
     17: 
    
     18: /*
    
     19: String time=sdf.format(d);
    
     20: System.out.println("time="+time);
    
     21: */
    
     22: 
      1: 
    
      2: //如何单独获取年份,月份或者日期?
    
      3: //方法1:
    
      4: Date d=new Date();
    
      5: SimpleDateFormat sdf=new SimpleDateFormat("yyyy");
    
      6: String year=sdf.format(d);
    
      7: System.out.println(year);
    
      8: 
    
      9: //方法2:
    
     10: Calendar c=Calendar.getInstance();
    
     11: System.out.println(c.get(Calendar.YEAR));
    
     12: 
    
     13: /*
    
     14: Calendar为一个抽象类,提供了一个类方法getInstance来获取该类的一个通用的对象
    
     15: getInstance方法的返回值为一个Calendar对象。
    
     16: 
    
     17: */

    Math类:

    <1>ceil方法,返回最接近指定数据且大于指定数据的值,返回值为整数。

      1: double d=Math.ceil(16,34);
    
      2: System.out.println("d="+d);

    打印结果为d=17.0

    <2>floor方法,返回小于该数的最大整数

      1: double d=Math.floor(12.34);
    
      2: System.out.println("d="+d);
    
      3: 

    打印结果为d=12.0

    <3>round方法,四舍五入

      1: long l=Math.round(12.54);
    
      2: System.out.println("l="+l);
    
      3: //返回值为long类型

    <4>pow方法,返回值为a的b次方,pow(a,b)

      1: double d2=Math.pow(2,3);
    
      2: System.out.println(d2);
    
      3: 

    打印结果为8.0

    <5>random随机数,介于0.0到1.0之间的随机数,double类型

    在java.util中有一个Random类

    netInt(int n);返回一个0到n之间的随机数(int类型)

      1: //返回1~10之间的随机数
    
      2: int d=(int)(Math.random()*10+1);
    
      3: 
    
      4: //方法2:
    
      5: Random r=new Random();
    
      6: int d=r.nextInt(10)+1;
  • 相关阅读:
    改了一下分辨率,Areo特效奇迹般的恢复了...
    此连接需要活动的Internet连接
    Apple Mac OS X每日一技巧026:Spotlight打开文件所在的文件夹
    WP7有约(八):在ListPicker控件的选择页面上播放铃声
    WP7有约(七):实现铃声设置的播放图标的效果
    WP7有约(五):回到主页
    WP7有约:一个应用的破蛋过程
    WP7有约(六):AppBarUtils使用指南
    IE与firefox事件处理
    C#试题
  • 原文地址:https://www.cnblogs.com/mandy920213/p/3537501.html
Copyright © 2011-2022 走看看