java基础增强1

来源:互联网 发布:mac qq怎么发文件夹 编辑:程序博客网 时间:2024/05/16 16:21

Java5.0新特性

1.静态导入

Import static 包名.类名.静态属性|静态方法|*

例如    Import staticjava.lang.System.out

                   Import static java.lang.Math.*

                   工具方法都是静态的 为了方便调用

 

2.自动装箱

指开发人员可以把一个基本数据类型直接赋给对应的包装类

Integer i = 1; //1(基本数据类型)—>先装成对象再赋给i

拆箱

指开发人员可以把一个包装类对象直接赋给对应的基本数据类型

Int j = i; //i(包装类对象)—>直接赋给基本数据类型j

        典型应用

                  List list = new ArrayList();

                  List.add(1); //1这里自动装箱为对象

                  Int j = (Integer)list.get(0); //list第一个对象拆箱为基本数据类型给j

 

3.增强for循环

         只能用在数组,或实现Iterable接口的集合类上

         格式

                 for(变量类型 变量 : 需迭代的数组或集合){

 

}

         Map<k,v>没有实现Iterable接口,需要其他方法实现增强for循环

a)      Set set = map.keySet(); //key值做Set集合

Iterable it = set.iterable(); //Set有Iterable接口

while(it.hasNext){

          Stringkey = (String)it.next(); //获取key

          Stringvalue = (String)map.get(key); //通过key找value

          System.out.println(key+ “=” + value); //输出k-v对

}

for(Object obj : map.keySet()){

           Stringkey = (String)obj;

         Stringvalue = (String)map.get(key);

         System.out.println(key+ “=” + value); //输出k-v

}

                  [顺序存顺序取 链表 LinkedHashMap()]

b)     Map下有entryset()方法 把k-v对封装为Entry对象

Set set = map.entrySet();

 Iterable it = set.iterable();

while(it.hasNext){

          Map.Entryentry = (Entry)it.next(); // Entry对象存

          Stringkey = (String)entry.getKey; //通过方法找出key

          Stringvalue = (String)entry.getValue(); //通过方法找value

           System.out.println(key+ “=” + value); //输出k-v对

}

for(Object obj : map.entrySet()){

          Map.Entryentry = (Entry) obj;

       Stringkey = (String)entry.getKey;

          Stringvalue = (String)entry.getValue();

          System.out.println(key+ “=” + value);

}

         需要注意的问题:

                  只适合取数据,改数据要用传统for循环

                  变量只是指向 改的只是指向对象 不是集合中的数据

 

4.可变参数

         可变参数看成数组来操作

         例子

                  public void sum(int …nums){

                          int sum = 0;

                          for(int i : nums){

         sum+= i;

 }

System.out.printIn(sum);

 }

@Test

public void testSum(){

         //调用可变参数方法 编译器自动创建一个数组

         sum(1,2,3,4,5,6);//任意几个

         int arr[] = {1,2,3,4,};

         sum(arr);//数组传入也行

}

         Arrays.asList()方法

对象数组存为list集合 基本数据类型数组会当成一个数组对象存入

int nums1[] = {1,2,3};

Integer nums2[] = {1,2,3};

List list = Arrays.asList(nums1); //list为[一个数组地址]

List list = Arrays.asList(nums2); //list为[1,2,3]

         需要注意的问题:

                  不要使电脑困惑 sum(int …nums,int x)不行 可变参数只能处于参数列表最后

原创粉丝点击