1. 程式人生 > >List、Set、Map常見集合遍歷總結

List、Set、Map常見集合遍歷總結

排序 out java tlab vhdl for var 定義 word

Java中的集合有三大類,List、Set、Map,都處於java.util包中,List、Set和Map都是接口,不能被實例化,它們的各自的實現類可以被實例化。List的實現類主要有ArrayList,Set的實現類主要有HashSet和TreeSet,Map的實現類主要有HashMap和TreeMap。
  List中的對象有序,可以重復,允許按照對象在集合中的索引位置檢索對象,如通過list.get(i)方式來獲得List集合中的元素。
  Set中的對象無序,不可以重復。但它的有些實現類能對集合中的對象按特定方式排序,例如TreeSet類,它可以按照默認排序,也可以通過實現java.util.Comparator接口來自定義排序方式。

  Map中的每一個元素包含一個鍵對象和值對象,它們成對出現。鍵對象不能重復,值對象可以重復。
  根據如上綜述,現將這三種集合的遍歷方式總結如下 
  

一、List集合

List集合有序,可重復,以最常見的ArrayList集合為例,List集合添加元素使用add()方法

List<String> list = new ArrayList<String>();
list.add(“張三”);
list.add(“李四”);
list.add(“王五”);

List集合遍歷方式有三種:普通for循環、增強for循環、叠代器(iterator)

  • 普通for循環
for(int i=0; i<list.size(); i++) {
    String str = list.get(i);
    System.out.println(str);
}

  • 增強for循環
for(String str : list) {
    System.out.println(str);
}

  • 叠代器(iterator)
Iterator<String> it = list.iterator();
while(it.hasnext) {
    System.out.println(it.next);
}

二、Set集合

Set集合無序,不可重復,以最常見的HashSet為例,Set集合添加元素也使用add()方法

Set<String> set = new HashSet<String>();
set.add(“張三”);
set.add(“李四”);
set.add(“王五”);

Set集合遍歷方式有兩種:增強for循環、叠代器(Iterator)

  • 增強for循環
for(String str : set) {
    System.out.println(str);
}

  • 叠代器(Iterator)
Iterator<String> it = set.iterator();
while(it.hasnext) {
    System.out.println(it.next);
}

三、Map集合

Map集合以鍵值對的形式成對出現,無序,鍵對象不可重復,值對象可重復。以最常見的HashMap為例,Map集合添加元素采用put()方法

Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, “小希”);
map.put(2, “美美”);
map.put(3, “空城”);

Map集合遍歷方式有兩種,一種是將所有的Key拿出來組成集合KeySet,即縱向遍歷,另一種是使用EntrySet獲得所有的key-value的之間的關系集合,然後再遍歷的橫向方式

  • 獲取所有的key的集合
Set<Integer> keys = map.keySet();
for(Integer key : keys) {
    String value = map.get(key);
    System.out.println(key+” ”+value);
}

  • 獲取key-value的對應關系
Set<Entry<Integer, String>> entrys = map.entrySet();
for(Entry<Integer, String> entry : entrys) {
    System.out.println(entry.getKey()+” ”+entry.getValue());
}

List、Set、Map常見集合遍歷總結