JDK1.5新特性

JDK1.5之后的新特性

主要从以下三个方法提高: 提高效率、简化书写、提高安全性

(一). 增强for循环

1)格式:for(数据类型 元素名:被遍历的集合Collection或数组)
2)遍历集合中元素
2.1)for循环对集合进行遍历:只能获取集合元素,不能对集合进行操作
2.2)迭代器除了遍历,还可以进行remove集合中元素的操作;如果用ListIterator,还可以在遍历过程中对集合元素进行增删改查操作。
3)传统for和高级for的区别?
3.1)高级for有一个局限性,就是必须有被遍历的目标。
3.2)建议在遍历数组的时候,还是希望用传统的for循环。

示例1:

import java.util.*;
class ForEach
{
    public static void main(String args[])
    {
        ArrayList<String> al = new ArrayList<String>();
        al.add("sfdg");
        al.add("fdg");
        al.add("dg");


        for(String s:al)
        {
            s = "kk";//此处并未改变集合中元素的值。
            System.out.println(s);
        }
        System.out.println(al);

        Iterator<String> it = al.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }



        int[] arr = {3,5,1};
        for(int x=0;x<arr.length;x++)//使用一般for循环可以对数组脚标进行操作。
        {
            System.out.println(arr[x]);
        }
        for(int i:arr)//不能对数组脚标进行操作。
        {
            System.out.println(i);
        }

        HashMap<Integer,String> hm = new HashMap<Integer,String>();
        hm.put(1,"aaa");
        hm.put(2,"bbb");
        hm.put(3,"ccc");

        Set<Integer> keySet = hm.keySet();
        for(Integer key:keySet)
        {
            System.out.println(key+":"+hm.get(key));
        }

        for(Map.Entry me:hm.entrySet)
        {
            System.out.println(me.getKey()+":;:"+me.getValue());
        }


    }
}

(二). 方法的可变参数

1)格式:方法名(参数类型… arr)
2)注意:如果还有其他类型的参数,可变参数放在参数列表的最后。

show("heheh",3,32,4,3,4);

        public static void show(String str,int...arr)
        {
            System.out.println(arr.length+str);
        }

如果是这样,则会报错。

show(3,32,4,3,4,"heheh");

        public static void show(int...arr,String str)
        {
            System.out.println(arr.length+str);
        }

(三). 静态导入

1)格式:import static java.util.Arrays.*
2)注意点:
2.1)当类名重名时,需要指定具体的包名
2.2)当方法名重名时,需要指定方法具体所属的对象或者类。

import java.util.*;
class StaticImport
{
    public static void main(String args[])
    {
        int[] arr = {1,3,4};
        Arrays.sort(arr);

        int index = Arrays.binarySearch(arr,"3");
        System.out.println("indext = "+index);
        System.out.println(Arrays.toString(arr));
    }
}

以上代码利用静态导入简化代码,如下:

import static java.util.Arrays.*;
import static java.lang.System.*;
class StaticImport
{
    public static void main(String args[])
    {
        int[] arr = {1,3,4};
        sort(arr);

        int index = binarySearch(arr,"3");
        out.println("indext = "+index);
        out.println(Arrays.toString(arr));
    }
}

注: 此处的out.println(Arrays.toString(arr));换成out.println(toString(arr));则出错。
原因:因为此处首先引用的是Object类的toString()方法,此方法没有参数。所以此处Arrays类和Object类存在方法名一样的冲突,因此需要写上类名Arrays。

(四). StringBuilder

1)StringBuffer是线程同步,而StringBuilder是线程不同步。
2)StringBuilder是StringBuffer的升级版,所有的用法都一样。
2)以后开发,建议使用StringBuilder,提供效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值