部分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;
原文地址:https://www.cnblogs.com/mandy920213/p/3537501.html