自己对List,Set,Map等集合类的理解
以下是自己写的Java代码:
package com.softceo.test;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;/** * * @author softceo945 * */public class Test {/** * @param args */public static void main(String[] args) {//testListInterface();//testSetInterface();testMapInterface();}/** * 测试List接口 * List接口可按索引访问集合中的元素,是有序的集合,允许重复的元素 * 实现类有ArrayList,LinkedList,这两个都是非线程安全的(异步的),允许null元素 * 实现类有Vector,是线程安全的List实现类,Stack是vector的子类 * */public static void testListInterface(){List<Object> list=new ArrayList<Object>();list.add(1);list.add("2");list.add(1);list.add(null);for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}/** * 测试Set接口 * Set接口不包含重复的元素,最多只能允许有一个null元素,是无序的列表 * Set的实现类有HashSet,TreeSet以及子类LinkedHashSet,这三个类是非线程安全的 */public static void testSetInterface(){Set<Object> set=new HashSet<Object>();set.add(1);set.add("2");set.add("3");set.add(4);set.add(1);set.add(null);Object[] obj=set.toArray();for (int i = 0; i < obj.length; i++) {System.out.println(obj[i]);}}/** * 测试Map接口 * Map是一种把键对象与值对象关联的容器,键对象不允许重复 * Map的实现类有HashMap,IdentityHashMap,WeakHashMap,TreeMap,以及LinkedHashMap子类,这些类都是非线程安全的, * HashMap中允许使用 null 值和 null 键 */public static void testMapInterface(){Map<Object, Object> map=new HashMap<Object, Object>();map.put(1, "1");map.put(1, "2");map.put(2, null);map.put(null, null);for(Object o:map.keySet()){System.out.println(map.get(o));}}/** * HashTable是线性安全的,HashTable不能插入null空元素,其他和HashMap大致相同 */}