黑马程序员技术交流社区
标题:
在飞 jdk新特性(一) 静态导入 自动装箱/拆箱 高级for 可...
[打印本页]
作者:
pzfpang449
时间:
2013-1-5 09:23
标题:
在飞 jdk新特性(一) 静态导入 自动装箱/拆箱 高级for 可...
本帖最后由 pzfpang449 于 2013-1-5 17:50 编辑
1,静态导入 import static
2,自动装箱:把基本数据类型直接赋值给对应的包装类
自动拆箱:包装类对象直接赋给对应的基本数据类型
3,高级for循环 只能用在数组、或实现Iterable接口的集合类上
例子(用junit测试)
//传统方法1 keyset
@Test
public void test3(){
//如果想让显示有顺序需将HashMap()换成LinkedHashMap().... Map map=new LinkedHashMap();
Map map=new HashMap();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
Set set= map.keySet();
Iterator it= set.iterator();
while(it.hasNext()){
String key=(String)it.next();
String value=(String)map.get(key);
System.out.println(key+"="+value);
}
}
结果为1=aa,2=bb,3=cc;
//传统方式2 entrySet
@Test
public void test4(){
Map map=new LinkedHashMap();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
Set set=map.entrySet();
Iterator it=set.iterator();
while(it.hasNext()){
Map.Entry entry=(Map.Entry)it.next();
String key=(String) entry.getKey();
String value=(String) entry.getValue();
System.out.println(key+"="+value);
}
}
//增强for取map的第一种方法
@Test
public void test5(){
Map map=new LinkedHashMap();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
for(Object obj:map.keySet()){
String key=(String) obj;
String value=(String) map.get(key);
System.out.println(key+"="+value);
}
}
//增强for取map的第二种方法
@Test
public void test6(){
Map map=new LinkedHashMap();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
for(Object obj:map.entrySet()){
Map.Entry entry=(Entry)obj;
String key=(String) entry.getKey();
String value=(String) entry.getValue();
System.out.println(key+"="+value);
}
}
//注意高级for只适合取数组,要修改要用传统for方式
@Test
public void test7(){
int arr[]={1,2,3};
for(int i:arr){
i=10;
}
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
结果为1,2,3而不是10
4,可变参数
public class kebiancanshu {
@Test
public void testSum(){
sum(1,2,3);
sum(1,2,3,4,5,6);
}
public void sum(int ...nums){
int sum=0;
for(int i:nums){
sum+=i;
}
System.out.println(sum);
}
}
结果为 6 21
可变参数需要注意的问题,类型问题
@Test
public void bb(){
List list=Arrays.asList("1","2","3");
System.out.println(list);
String arr[]={"1","2","3"};
list=Arrays.asList(arr);
System.out.println(list);
//如果为Integer则可以,结果为1,2,3,5
//如果为 int nums[]={1,2,3,5}; 结果为[[I@12cc95d]
Integer nums[]={1,2,3,5};
list=Arrays.asList(nums);
System.out.println(list);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2