import java.util.*;
public class UsingAsList{
private static final String colors[]={"red", "white","blue","blue"};
private List list;
public UsingAsList(){
list=Arrays.asList(colors);
System.out.println("ArrayList:"+list); for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
}
System.out.println("ArrayList:"+list); list.set(1,"addnewelement");
System.out.println("ArrayList:"+list);
for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
} } public static void main(String args[]){
UsingAsList setTest=new UsingAsList();
System.out.println("last ArrayList:"+setTest.list);
}
}
import java.util.*;
public class UsingAsListE2{
private static final String colors[]={"red", "white","blue","blue"};
private List list;
public UsingAsListE2(){
List list =new ArrayList(Arrays.asList(colors));
System.out.println("ArrayList:"+list); for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
}
System.out.println("ArrayList:"+list); list.set(1,"addnewelement");
System.out.println("ArrayList:"+list);
for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
} } public static void main(String args[]){
UsingAsListE2 setTest=new UsingAsListE2();
System.out.println("last ArrayList:"+setTest.list);
}
}
//这个为啥又不变了呢?
public class UsingAsList{
private static final String colors[]={"red", "white","blue","blue"};
private List list;
public UsingAsList(){
list=Arrays.asList(colors);
System.out.println("ArrayList:"+list); for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
}
System.out.println("ArrayList:"+list); list.set(1,"addnewelement");
System.out.println("ArrayList:"+list);
for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
} } public static void main(String args[]){
UsingAsList setTest=new UsingAsList();
System.out.println("last ArrayList:"+setTest.list);
}
}
import java.util.*;
public class UsingAsListE2{
private static final String colors[]={"red", "white","blue","blue"};
private List list;
public UsingAsListE2(){
List list =new ArrayList(Arrays.asList(colors));
System.out.println("ArrayList:"+list); for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
}
System.out.println("ArrayList:"+list); list.set(1,"addnewelement");
System.out.println("ArrayList:"+list);
for (int i=0;i<colors.length;i++){
System.out.println("colors[] are "+colors[i]+"");
} } public static void main(String args[]){
UsingAsListE2 setTest=new UsingAsListE2();
System.out.println("last ArrayList:"+setTest.list);
}
}
//这个为啥又不变了呢?
private List list;
list=Arrays.asList(colors);
这就是区别所在,去看一下他是在内存中怎么分布的,你就能明白!!!!!!!!!!!!
final int a[];
a不可以再改变
后面这句指指向a数组的yin用是final的,这个引用指向了一个地址,这个地址的内容是可以改变的!
例:
class abc{
public int c;
}
abc a = new abc();
final abc b = a;
a.c =3;
这个时候a.c也不再是零而是3了
换成list =new ArrayList(Arrays.asList(colors));才能打印值