增强for循环与静态导入
1,静态导入(一般不建议使用):
import static java.lang.System.out;->在程序中就可以直接用out.println(...);
import static java.util.Array.*;->sort(int[]);[本来是要import java.util.Arrays;arrays.sort(int [])的]
2,自动装箱,拆箱:在jdk1.5出现
3,增强for循环(foreach):只适用于数组,或者实现Iterable接口的类上
注意:增强for只适用于取出数据,修改数据还是要用传统的for循环
案例public void test(){
int[] a={1,2,3};
for(int e:a){//将数据赋给e,这里并不会改变数组的值
e=10;
System.out.println(e);//10 10 10
}
for(int i=0;i<a.length;i++)
System.out.println(a[i]); // 1 2 3
}
增强for在HashMap的运用
HashMap<Integer, String> hm=new HashMap<Integer, String>();
hm.put(1,"a");
hm.put(2,"b");
hm.put(3,"c");
-----传统1:
Set<Integer> k=hm.keySet();
Iterator<Integer> it=k.iterator();
while(it.hasNext()){
System.out.println(hm.get(it.next()));
}
******使用增强for
for(Integer e:hm.keySet()){
System.out.println(hm.get(e));
}
-----传统二
Set<Entry<Integer, String>> k=hm.entrySet();//通过Hash.entrySet()->封装成entry(key,value)的形式到Set
Iterator<Entry<Integer, String>> it=k.iterator();
while(it.hasNext()){
Entry<Integer, String> entry=it.next();
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
******使用增强for
for(Entry<Integer,String> e:hm.entrySet()){
System.out.println(e.getKey());
System.out.println(e.getValue());
}
可变参数:
@Test
public void test(){
sum(1,2,3,4);//10
int[] a={1,2,3,4,5};
sum(a);//15
sum2(1,2,3,4);
}
public void sum(int ...nums){//可以将可变参数看做数组
int sum=0;
for(int e:nums){
sum+=e;
}
System.out.println(sum);
}
public void sum2(int a,int...nums){
}
在使用可变参数的时候,应该看参数是什么类型,如Arrays.asList(T(对象)...a);
int []num={1,2,3};
List list=Arrays.asList(num);
System.out.println(list);//这样是不行的,这个意思是把这个数组看做对象放了,应该讲int改为Integer
这样输出的是[1,2,3];
现在的几乎什么都不懂,但是不代表以后的我也是这样。