jdk新特性(一) 静态导入 自动装箱/拆箱 高级for循环 可变参数

本文深入探讨了Java编程中的一些高级特性,包括静态导入、自动装箱与拆箱、高级for循环的应用,以及可变参数的使用。通过具体示例,展示了如何在不同场景下高效地利用这些特性进行代码编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值