天天看点

容器类常用方法(1)

1. 添加一组元素

 Arrays.asList方法, Collections.addAll方法,collection.addAll方法

package context;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

public class TestCollection {
	
	public static void main(String[] args) {
		//Arrays.asList方法,接收数据或者多个参数
		Collection<Integer> c = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
		System.out.println(c);
		
		//c.addAll接收collection
		Integer[] moreInt = {4, 5, 6, 7};
		c.addAll(Arrays.asList(moreInt));
		System.out.println(c);
		
		//接收可变参数,数组
		Collections.addAll(c, 8, 9, 10);
		System.out.println(c);
		
		Collections.addAll(c, moreInt);
		System.out.println(c);
		
		//直接将Arrays.asList获取的list拿来使用,list的大小不能调整
		List<Integer> list = Arrays.asList(11, 12, 13, 14);  //底层是数据,不能调整大小,调用add,remove方法均报错
		list.set(0, 99);
		System.out.println(list);
//		list.add(21);    //java.lang.UnsupportedOperationException
//		System.out.println(list);
		
		List<Integer> list2 = new ArrayList<Integer>();
		list2.addAll(Arrays.asList(11, 12, 13, 14));
		list2.add(22);
		System.out.println(list2);
	}	
}
           

2. ArrayBlockingQueue常用方法:先进先出,容器大小固定

package context;

import java.util.Date;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;

public class TestCollection2 {
	
	public static void main(String[] args) throws InterruptedException {
		ArrayBlockingQueue<String> q = new ArrayBlockingQueue<String>(2);
		System.out.println("q.peek: " + q.peek());  //获取不移除
		q.add("123");
		System.out.println("q.peek: " + q.peek());  //获取不移除
		System.out.println("q.take: " + q.take());  //获取移除
		
		System.out.println("date1: " + new Date());
		System.out.println("q.poll: " + q.poll(2, TimeUnit.SECONDS));   //等待2S,获取元素
		System.out.println("date2: " + new Date());
	
		for(int i=0; i<2; i++) {
			q.offer("a" + i);
		}
		//等待添加
		System.out.println("q.offer: " + q.offer("aa", 1, TimeUnit.SECONDS));
		System.out.println("date3: " + new Date());
		q.clear();  //清空所有
		System.out.println(q.take());        //等待,永久的等待!
		System.out.println("date4: " + new Date());
	}
}
           
//output	
q.peek: null
q.peek: 123
q.take: 123
date1: Thu Nov 28 10:26:49 GMT+08:00 2013
q.poll: null
date2: Thu Nov 28 10:26:51 GMT+08:00 2013
q.offer: false
date3: Thu Nov 28 10:26:52 GMT+08:00 2013
           

准备一章写几个知识点,有时间就写点,这篇到这。