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

原创 2015年03月04日 22:02:16

用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());
	}

}



版权声明:本文为博主原创文章,未经博主允许不得转载。

Java中Map和Set之间的关系(及Map.Entry)

1、通过查找API文档: 2、Map.Entry是一个接口,所以不能直接实例化。 3、Map.entrySet( )返回的是一个collection集合,并...
  • G_66_hero
  • G_66_hero
  • 2017年04月15日 00:39
  • 1223

Collection集合集成结构图图

Collection集合集成结构图图
  • zhangshengsky
  • zhangshengsky
  • 2017年04月23日 23:49
  • 763

深入源码分析Map与List的关系

其实我们也可以把Map和List统一起来。Map的values()方法:Map集合是一个关联数值,它包含两组值: 一组是所有key组成的集合,key值不允许重复,而且Map不会保存key加入...
  • canot
  • canot
  • 2016年04月26日 13:28
  • 822

Collection、List、Set、Map之间的关系

初学java,单个的接触有点迷糊,所以总结下他们的关系 一、关系 Collection --List:以特定顺序存储 --ArrayList、LinkList、Vector --Set:不能...
  • jinhuoxingkong
  • jinhuoxingkong
  • 2016年04月23日 12:16
  • 3455

【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

两个月之前准备软考时,简单的从理论上总结了最常用的数据结构和算法,比如:线性表,链表,图。在进行java开发时,jdk为我们提供了一系列相应的类来实现基本的数据结构。jdk所提供的容器API位于jav...
  • jiuqiyuliang
  • jiuqiyuliang
  • 2014年06月30日 09:59
  • 29652

Collection集合体系结构图

Collection集合体系结构图
  • u013905744
  • u013905744
  • 2015年03月25日 14:24
  • 1359

Collection集合 框架图 及 Collections帮助类

查看了一些资料将Collection接口及Map接口的框架总结如下,方便以后学习使用。...
  • yiyiwudian
  • yiyiwudian
  • 2015年06月28日 19:25
  • 909

常用JAVA集合框架(Collection、List、Set、Map)

1.常用集合框架结构 2. List   2.1 ArrayList List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List ...
  • sdauzxl
  • sdauzxl
  • 2016年07月29日 20:17
  • 1980

集合(Collection解析 Set List Map三大集合运用)

集合的概念:          集合是包含多个对象的简单对象,所包含的对象称为元素。集合里面可以包含任意多个对象,数量可以变化;同时对对象的类型也没有限制,也就是说集合里面的所有对象的类型可以相同,...
  • jrdgogo
  • jrdgogo
  • 2016年03月21日 13:10
  • 795

使用collectionView实现图片轮播

  • 2015年08月25日 10:34
  • 26KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Collection、List、Set、Map关系图学习笔记1
举报原因:
原因补充:

(最多只允许输入30个字)