Collection、List、Set、Map关系图学习笔记1

27 篇文章 0 订阅

用PD画了一张相关接口、相关类及主要方法的图 帮助加深理解与记忆





接着对主要类 做了个简单的测试 更多的测试与学习 后续后补上


/**
 * 
 */
package com.undergrowth.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;

import org.junit.Test;

/**
 * 测试集合操作
 * 
 * @author Administrator
 * 
 */
public class CollectionTest {

	/**
	 * 泛型方法 对实现Iterable<E>接口的对象进行迭代
	 * 
	 * @param iterable
	 */
	public <E> void iterator(Iterable<E> iterable) {
		for (E e : iterable) {
			System.out.println(e);
		}
	}

	// 测试数组
	private final String[] ITEMS = { "中国", "美国", "德国", "法国" };

	/**
	 * 创建ArrayList集合
	 * 
	 * @return
	 */
	private Collection<String> createArrayList() {
		Collection<String> collection = new ArrayList<String>();
		addData(collection);
		return collection;
	}

	/**
	 * 向数组中添加元素
	 * 
	 * @param collection
	 */
	private void addData(Collection<String> collection) {
		// TODO Auto-generated method stub
		collection.addAll(Arrays.asList(ITEMS));
	}

	/**
	 * 测试ArrayList可变数组
	 */
	@Test
	public void testArrayList() {
		Collection<String> collection = createArrayList();
		iterator(collection);
		System.out.println("删除后,在进行迭代");
		collection.remove("中国");
		iterator(collection);
		System.out.println("测试是否包含中国:" + collection.contains("中国"));
		System.out.println("测试清除集合:");
		collection.clear();
		iterator(collection);
		System.out.println("测试清除集合后,是否为空:" + collection.isEmpty());
		addData(collection);
		iterator(collection);
		System.out.println("填充数据后,转换为数组");
		System.out.println("数组元素个数:" + collection.toArray().length);
		System.out.println("截取子列表,[0,2)");
		iterator(((List<String>) collection).subList(0, 2));
	}

	/**
	 * 创建堆栈元素
	 * 
	 * @return
	 */
	private Stack<String> createStack() {
		// TODO Auto-generated method stub
		Stack<String> stack = new Stack<>();
		stack.push(ITEMS[0]);
		stack.push(ITEMS[1]);
		stack.push(ITEMS[2]);
		return stack;
	}

	/**
	 * 测试堆栈 先进后出
	 */
	@Test
	public void testStack() {
		Stack<String> stack = createStack();
		iterator(stack);
		System.out.println("判断堆栈是否为空:" + stack.empty());
		System.out.println("查找堆栈元素的位置:" + stack.search("中国"));
		System.out.println("查看栈顶元素:" + stack.peek());
		System.out.println("删除栈顶元素:" + stack.pop());
	}

	/**
	 * 创建Set集合
	 * 
	 * @return
	 */
	private Set<String> createSet() {
		// TODO Auto-generated method stub
		Set<String> set = new HashSet<>();
		set.add(ITEMS[0]);
		set.add(ITEMS[0]);
		set.add(ITEMS[0]);
		set.add(ITEMS[1]);
		set.add(ITEMS[2]);
		set.add(ITEMS[3]);
		return set;
	}

	/**
	 * 测试HashSet
	 */
	@Test
	public void testHashSet() {
		Set<String> set = createSet();
		iterator(set);
	}

	/**
	 * 创建Map 键值对
	 * 
	 * @return
	 */
	private Map<String, String> createMap() {
		// TODO Auto-generated method stub
		Map<String, String> map = new HashMap<String, String>();
		map.put(ITEMS[0], ITEMS[0]);
		map.put(ITEMS[0], ITEMS[0]);
		map.put(ITEMS[1], ITEMS[1]);
		map.put(ITEMS[2], ITEMS[2]);
		map.put(ITEMS[3], ITEMS[3]);
		return map;
	}

	/**
	 * 测试HashMap
	 */
	@Test
	public void testHashMap() {
		Map<String, String> map = createMap();
		iterator(map.keySet());
		iterator(map.values());
	}

}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值