Java集合

2018-09-19  本文已影响0人  ddxuzengbin

集合框架:和集合、数组、映射相关的接口和类都是集合框架的成员 --- Map/Collection/Collections/Iterator/Comparator/Comparable/Arrays

:Collection和Collections的区别?
:Collection是java.util下的接口,它是各种集合的父接口,继承于它的接口主要有Set和List;
Collections是java.util下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜索,排序(Collections.sort(list)),线程安全化等操作.

集合

存储多个数据的容器---大小不固定

Collection<E>

Java中集合的顶级接口。<E>---泛型---用于定义存储的元素类型。---由于泛型的限制,要求集合中只能存储引用类型的数据。---Collection<Integer>

Collection
|--List
|...|--LinkedList
|...|--ArrayList
|...|--Vector
|.......|--Stack
|
|--Set
|...|--HashSet:默认容量是16,默认加载因子是0.75f,每次默认增加一倍。线程不安全---扩容机制要求掌握

Map<K,V>---映射
两组变量---键,值。每一个键必然对应一个值,键不可重复---一个映射实际上是由多个键值对组成的。
键值对所对应的接口---Entry,它是Map中的内部接口---每一个键值对都是一个Entry对象,那么实际上Map是由多个Entry对象来组成的
Map是集合吗?---不是,是集合框架的一员。

附:迭代器的用法

package com.xzb;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class IteratorList {
    
    public static void main(String[] args) {
        testMap();
        testSet();
        testList();
    }
    
    /**
     * 迭代遍历Map
     */
    public static void testMap() {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");
        
        Set<Integer> set = map.keySet();
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        
        Collection<String> collection = map.values();
        System.out.println(collection);
        
        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
        Iterator<Map.Entry<Integer, String>> iterator2 = entrySet.iterator();
        while (iterator2.hasNext()) {
            Map.Entry<Integer,String> entry = (Map.Entry<Integer,String>) iterator2.next();
            System.out.println("Key:" + entry.getKey());
            System.out.println("Value:" + entry.getValue());
        }
    }
    
    /**
     * 迭代遍历Set
     */
    public static void testSet() {
        Set<String> set = new HashSet<>();
        set.add("111");
        set.add("222");
        set.add("333");
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            String string = (String) iterator.next();
            System.out.println(string);
        }
    }
    
    /**
     * 迭代遍历List
     */
    public static void testList() {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            Integer j = (Integer) iterator.next();
            System.out.println(j);
        }
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读