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的值加几。




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐