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集合详解(Collection和Map接口)

在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:             java.util         +Collection 这个接口exten...
  • lioncode
  • lioncode
  • 2013年03月14日 15:20
  • 18934

List <Map> 排序详解

在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(...

Java_Socket简单通信

这里主要是想说PrintWriter的write方法和println的区别  我被坑了2小时  一开始使用的是write和flush方法 我看了看源码  write方法是不会刷新缓存的 使用flu...

socket ( java ) 简单多个客户端、服务端通信(多线程)

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处  、作者信息和本声明。否则将追究法律责任。 http://blog.csdn.net/love254443233/articl...

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

/** * Collection测试 * * * PriorityQueue--迭代时,不保障元素的迭代顺序 * * equals 与 hashCode 的区别 * 1、If e...

java集合 - Collection - List - Set - Map - Iterator 学习笔记

1、Collection接口 集合可以理解为一个动态的对象数组,两层含义: 1)、动态:集合中的对象可以任意扩充和删减; 2)、集合中可以存放任意对象。 集合的性能比数组高,而且更容易进行数据...

13. Java类集 Part 1(类集、Collection接口、List接口、Set接口、SortedSet接口、集合的输出) ----- 学习笔记

本章目标:

黑马程序员----Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?

---------------------- 黑马程序员 Android培训、期待与您交流! ---------------------- 1、Collection和Collections有什么...

java基础巩固系列(九):持有对象之间的使用与关系(Iterable、Collection、List、Queue、Set、Map、Stack)

java中的持有对象之间的继承关系
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Collection、List、Set、Map关系图学习笔记1
举报原因:
原因补充:

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