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

}



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

相关文章推荐

集合和Collections、Map的UML类图

今天在家没事看了一下集合框架,画了常用的类图。Collection大致可以分为set、List、Queue三种(Map不属于Collection体系中的,它是一个独立的数据结构。但是Collectio...
  • zknxx
  • zknxx
  • 2016-12-18 17:58
  • 847

集合详解(一)----Collection和Map接口

在我们编程的时候,有时候需要集中存放多个数据,可以用数组来保存多个数据,但是数组的长度是不可变的,一旦数组的长度确定了之后就无法再改变,如果要保存可变长度的数据的话,数组肯定是不行的了。而且数组也无法...

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

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

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

本章目标:

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

java中的持有对象之间的继承关系

【学习笔记】Hibernate映射List、Map、数组、Set、Bag的具体操作

注意:使用集合映射类声明时要注意使用接口而不是具体实现类。因为经过Session操作后,集合就变成了hibernate自己的集合实现类。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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