package stl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class Test1 {
public static void main(String[] args)
{
List list = Arrays.asList(1,2,4,5,6,3,8.3,-0.32343);
System.out.println(list.toString());
// 通过Arrays。asList得到的List,无法对其进行增删元素。这是因为,
// 该函数返回的List,其底层实现是数组,而数组的长度是固定的
//list.add(88);
//list.remove(list.size() - 1);
List<Integer> iLst = new ArrayList<Integer>(list);
System.out.println(iLst.size());
iLst.remove(iLst.size() - 1);
iLst.remove(iLst.size() - 1);
Integer[] iArr = iLst.toArray(new Integer[0]);
List<Integer> iLst2 = new ArrayList<Integer>(Arrays.asList(7,4,5,0,88));
Collection<Integer> cl1 = new ArrayList<Integer>(iLst2);
Collection<Integer> cl2 = new LinkedList<Integer>();
cl2.addAll(iLst2);
Collection<Integer> cl3 = new ArrayList<Integer>();
Collections.addAll(cl3, 1,2, new Integer(3));
System.out.println(cl3.toString());
List<B> listB = Arrays.asList(new B(), new B1(), new B2(), new B3(), new B4(),new B5());
List<B> listB2 = Arrays.asList(new B2(), new B3());
List<B> listB3 = new LinkedList<B>();
Collections.addAll(listB3, new B3(), new B5());
listB3.addAll(listB);
Collections.addAll(listB3, listB2.toArray(new B[0]));
List<B> listB4 = Arrays.<B>asList(listB3.toArray(new B[0]));
//以下几行是测试 List 和 数组的toString的输出值
System.out.println(listB3.toString());
B[] bArr = new B[]{new B(), new B1(), new B2(), new B3(), new B4(), new B5()};
System.out.println(bArr.toString()); // 数组的toString函数,仍然是输出“包名.类名@哈希值”
System.out.println(Arrays.toString(bArr)); //输出数组内窝,内容依赖于对象的toString
int[] aArr = {2,3,5,7,8};
System.out.println(aArr.toString());
System.out.println(Arrays.toString(aArr));
}
}
class B { }
class B1 extends B{
@Override
public String toString() {
return "B1 ";
}
}
class B2 extends B{
public String toString() {
return "B2 ";
}
}
class B3 extends B{}
class B4 extends B{
public String toString() {
return "B4 ";
}
}
class B5 extends B{}
</pre><pre name="code" class="java">
使用addAll来增加元素时(无论是Collections,还是Collection自身【包括List、Set、Deque】的),增加几个元素,modcount的值加几。