集合:是数据的容器,可以存储不同的对象或参数(类型可自定),主要方法是增、删、改、查 一、接口Collection
Collection是一个接口,继承它的有List与Set 1、List :继承Collection(值可重复并有序) ArrayList:是一个线性表,存储是连续的,线程不安全,速度快(增删快,改查慢) Version: 是一个线性表,存储是连续的,线程安全,速度慢(增删快,改查慢) LinkedList:是一个单链表(通过指针指向一个对象,存储地址不连续)(改查快,增删慢)
// List的四种遍历方式: // for: for ( int i = 0 ;i < list.size();i ++ ) ... { System.out.println(list.get(i)); } // foreach: for (Object obj:list) ... { System.out.println(obj); } // Enumeration: Enumeration enumeration = Collections.enumeration(list); while (enumeration.hasMoreElements()) ... { System.out.println(enumeration.nextElement()); } // Iterator: Iterator it = list.iterator(); while (it.hasNext()) ... { System.out.println(it.next()); }
2、Set :继承Collection(值不可重复--无序,一但值有重复,只能显示出一个,并且是最后出现的那个) HashSet: TreeSet:可以给一种类型的值,可自动排序
// Set的三种遍历方式: // foreach: for (Object obj:set) ... { Sysstem.out.println(obj); } // Iterator: Iterator it = list.iterator(); while (it.hasNext()) ... { System.out.println(it.next()); } // Enumeration: Enumeration enumeration = Collections.enumeration(list); while (enumeration.hasMoreElements()) ... { System.out.println(enumeration.nextElement()); }
3、List与Set 的通用方法: add()、addAll()、remove()、removeAll()、iterator()、size(). 4、通过构造子可以将一个集合类变为另一个集合类,只限于List与Set接口下的所有集合类: List list = new ArrayList(); list.add(1); list.add(2); list.add(3); Set set = new HashSet(list); 这里将集合类list转化为了set 二、Map接口:,Map是以键值存储,每个键名都是唯一,如有重复,后面的将把前面的给覆盖掉 Hashtable:线程安全,所有提供方法都实现了同步 HashMap:线程不安全,所有方法没有提供同步
在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
// hashtable与hashMap的读取方式: System. out .println(map.toString()); // 显示所存储在map中的所有无素 // foreach: // 得到所有键名 for (Object obj : map.keySet()) ... { System. out .println(obj); } // 得到所有的键值 for (Object obj : map.values()) ... { System. out .println(obj); } // 得到所有的键名和键值 for (Object obj : map.entrySet()) ... { System. out .println(obj); }
三、算法Collections:提供了很多的静态方法,来辅助处理集合类,只针对List与Set 1、示例:
List list = new ArrayList(); list.add( 1 ); list.add( 6 ); list.add( 3 ); list.add( 2 ); list.add( 5 ); Collections.sort(list); System.out.println(list);
输出结果将是:[1, 2, 3, 5, 6]