现在的位置: 首页 > 综合 > 正文

Java基础——jdk5新特性和常用函数

2018年03月22日 ⁄ 综合 ⁄ 共 4335字 ⁄ 字号 评论关闭

19、增强for循环

格式:

for(数据类型 变量名 被遍历的集合(Collection)或者数组)

{

}

对集合进行遍历。

只能获取集合元素。但是不能对集合进行操作。

迭代器除了遍历,还可以进行remove集合中元素的动作。

如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

package days10;

import java.util.ArrayList;

import java.util.*;

public class For1 

{

public static void main(String[]args)

{

ArrayList<String>al=new ArrayList<String>();

al.add("abc01");

al.add("abc02");

al.add("abc03");

for(String s:al)

{

System.out.println(s);

}

int[]arr={1,3,5};

for(int i:arr)

{

System.out.println(i);

}

HashMap<Integer,String> hs=new HashMap<Integer,String>();

hs.put(1, "a");

hs.put(2, "b");

hs.put(3, "c");

Set<Integer>s1=hs.keySet();

for(Integer s:s1)

{

System.out.println(s+" "+hs.get(s));

}

Set<Map.Entry<Integer, String>>s2=hs.entrySet();

for(Map.Entry<Integer, String>st:s2)

{

System.out.println(st.getKey()+" "+st.getValue());

}

}

}

20、可变参数

JDK1.5版本出现的新特性。

方法的可变参数。

在使用时注意:可变参数一定要定义在参数列表最后面。

可变参数。其实就是上一种数组参数的简写形式。不用每一次都手动的建立数组对象。

只要将要操作的元素作为参数传递即可。隐式将这些参数封装成了数组。

package days10;

public class Canshu 

{

public static void main(String[]args)

{

show(2,3,4,5);

}

public static void show(int... arr)

{

System.out.println(arr.length);

}

}

21、静态导入

StaticImport  静态导入。

当类名重名时,需要指定具体的包名。

当方法重名是,指定具备所属的对象或者类。

package days10;

import java.util.*;

import static  java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员。

import static java.util.Collections.*;

import static  java.lang.System.*;//导入了System类中所有静态成员。

class  Static1 //extends Object

{

public static void main(String[] args) 

{

out.println("haha");

int[] arr = {3,1,5};

sort(arr);

int index = binarySearch(arr,1);

out.println(Arrays.toString(arr));

System.out.println("Index="+index);

ArrayList al = new ArrayList();

al.add(1);

al.add(3);

al.add(2);

out.println(al);

sort(al);

out.println(al);

}

}

25、System

System:类中的方法和属性都是静态的。

out:标准输出,默认是控制台。

in:标准输入,默认是键盘。

package days11;

import java.util.*;

class SystemDemo 

{

public static void main(String[] args) 

{

Properties prop = System.getProperties();

//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。

//那么可以通过map的方法取出该集合中的元素。

//该集合中存储都是字符串。没有泛型定义。

//如何在系统中自定义一些特有信息呢?

System.setProperty("mykey","myvalue");

//获取指定属性信息。

String value = System.getProperty("os.name");

System.out.println("value="+value);

//可不可以在jvm启动时,动态加载一些属性信息呢?

String v = System.getProperty("haha");

System.out.println("v="+v);

/*

//获取所有属性信息。

for(Object obj : prop.keySet())

{

String value = (String)prop.get(obj);

System.out.println(obj+"::"+value);

}

*/

}

}

26、Runtime类

Runtime对象

该类没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。但是发现该类中还有非静态方法,说明该类肯定会提供了方法获取本类对象,而且该方法是静态的,并且返回类型是本类类型

该方法是:static Runtime getRuntime() 

          返回与当前 Java 应用程序相关的运行时对象。 

由这个特点可以看出该类使用单例设计模式完成

package days11;

import java.io.IOException;

public class Runtime1 

{

    public static void main(String[]args) throws IOException

    {

     Runtime r=Runtime.getRuntime();

     Process p=r.exec("C:\\1.gif");

     p.destroy();

    }

    

}

27、Date

package days11;

import java.util.*;

import java.text.*;

class Date1

{

public static void main(String[] args) 

{

Date d=new Date();

sop(d);

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E hh:mm::ss");

sop(sdf.format(d));

        long l=System.currentTimeMillis();

sop(l);

        Date t1=new Date(l);

sop(t1);

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

28、Calender

package days11;

import java.util.*;

import java.text.*;

class  Calender1

{

public static void main(String[] args) 

{

      Calendar c=Calendar.getInstance();

      sop(c);

      sop(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");

String[] mons = {"一月","二月","三月","四月"

,"五月","六月","七月","八月"

,"九月","十月","十一月","十二月"};

String[] weeks = {

"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",

};

int index = c.get(Calendar.MONTH);

int index1 = c.get(Calendar.DAY_OF_WEEK);

sop(c.get(Calendar.YEAR)+"年");

sop(mons[index]);

sop(c.get(Calendar.DAY_OF_MONTH)+"日");

sop(weeks[index1]);

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

29、Math

package days11;

import java.util.*;

public class Math1 

{

public static void main(String[]args)

{

double d=Math.ceil(16.34);//返回小于指定数据的最大整数

sop(d);

long l=Math.round(12.34);//四舍五入

sop(l);

double d1=Math.floor(12.34);//返回小于指定数据的最大整数

double d2=Math.pow(2, 3);//2的3次方

sop(d1);

sop(d2);

for(int x=0;x<10;x++)

{

System.out.print(((int)(Math.random()*10)+1)+" ");

}

System.out.println();

Random r=new Random();

for(int x=0;x<10;x++)

{

int t=r.nextInt(10);

System.out.print(t+" ");

}

public static void sop(Object obj)

{

System.out.println(obj);

}

}

抱歉!评论已关闭.