摸鱼看到idea代码泛黄
鼠标放上去看到提示
为什么?
于是就开始百度
终于明白
Arrays.asList将数组转换成list,但是转换的list只能用来遍历,没有清空删除等方法。
那我用来遍历为什么给我提示Unnecessary ‘Arrays.asList()’ call ?
因为数组也可以直接for循环,asList就是多此一举。
@Test
public void test(){
int[] str = {1,2,3,4,5,6,7,8,9};
for (int st : str){
System.out.println(st);
}
}
asList的性能会比直接循环数组高吗?
@Test
public void test2(){
String[] str = new String[1000000000];
for (int i = 0;i< str.length ;i++){
str[i] = "wang,wu";
}
System.out.println("开始");
long startTime = System.currentTimeMillis();
for (String st : str){
String[] split = st.split(",");
for (String s : split){
String s1 = s.toUpperCase();
}
}
long endTime = System.currentTimeMillis();
long usedTime = (endTime-startTime)/1000;
System.out.println("结束,用时:"+usedTime+"毫秒");
//第一次:用时:216毫秒
//第二次:用时:220毫秒
//第三次:用时:217毫秒
//第四次:用时:202毫秒
}
@Test
public void test3(){
String[] str = new String[1000000000];
for (int i = 0;i< str.length ;i++){
str[i] = "wang,wu";
}
System.out.println("开始");
long startTime = System.currentTimeMillis();
List<String> strings = Arrays.asList(str);
for (String st : strings){
String[] split = st.split(",");
for (String s : split){
String s1 = s.toUpperCase();
}
}
long endTime = System.currentTimeMillis();
long usedTime = (endTime-startTime)/1000;
System.out.println("结束,用时:"+usedTime+"毫秒");
//第一次:用时:215毫秒
//第二次:用时:217毫秒
//第三次:用时:219毫秒
//第四次:用时:208毫秒
}
基本上用时差不多