重温集合

学习Java语言一定要学会使用集合!

集合类又称为容器,提到容器不难想到数组。

数组 集合
数组长度是事先固定的 集合的长度是可以变化的
数组是有序的 集合有的有序,有的无序

常用的集合类有List集合、Set集合和Map集合。

遍历集合中的元素,都是通过迭代器(Iterator)来实现。

 1 public class Muster {
 2     public static void main(String[] args) {
 3         Collection<String> list = new ArrayList<>();
 4         list.add("a);
 5         list.add("b");
 6         list.add("c");
 7         
 8         Iterator<String> it = list.iterator();
 9         while (it.hasNext()) {
10             String str = (String) it.next(); // it.next()方法返回的是Object对象,所以需要强制类型转换
11             System.out.println(str);
12         }
13     }
14 }
Collection接口 List集合 Set集合 Map集合

Collection接口的常用方法有,

add(E e)

remove(Object o)

isEmpty()

iterator()

size()

List集合包括List接口以及List接口的所有实现类 Set集合包括Set接口以及Set接口的所有实现类

Map集合包括Map接口以及Map接口的所有实现类

  List集合中的元素允许重复 Set集合中不能包含重复的对象 Map集合中不能包含相同的key,每个key只能映射一个value
  List集合中各元素的顺序就是对象插入的顺序 Set集合中的对象不按特定的方式排序,只是简单地把对象加入集合中  
 

List接口实现了Collection接口,因此包含了Collection接口中的所有方法。此外,

List接口还定义了两个非常重要的方法:get(int index)和set(int index, Object obj)

Set集合实现了Collection接口,因此包含了Collection接口的所有方法

Map集合没有实现collection接口,其提供的是key到value

的映射。

 

List接口的实现类有ArrayList和LinkedList。ArrayList类实现了可变的数组,根据索引

查找元素很方便;LinkedList类采用链表结构保存对象,向集合中插入、删除对象很方便。

Set接口常用的实现类有HashSet类和TreeSet类。HashSet类实现了

Set接口,由哈希表支持。它不保证Set的迭代顺序,特别是它不保证该

顺序恒久不变;

TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此,

TreeSet类实现的Set集合在遍历时按照自然顺序递增排序,也可以按照指定

比较器递增排序。

Map接口常用的实现类有HashMap和TreeMap。

HashMap类实现的Map集合在添加、删除映射关系时效率更高,

但不保证映射的顺序,特别是它不保证该顺序恒久不变;

TreeMap类不仅实现了Map接口,还是先了java.util.SortedMap接口,

因此集合中映射关系具有一定的顺序。

原文地址:https://www.cnblogs.com/czp2bconfident/p/9311029.html