美文网首页工作生活
JavaSE中的容器

JavaSE中的容器

作者: 迷惘_89b7 | 来源:发表于2019-07-04 01:18 被阅读0次

概述:容器包括Collection和Map。Collection存储对象,Map存储键值对。

一. Collection接口

Collection包括两个子接口,List、Set


1. List接口:有序、可重复的容器
  • ArrayList:使用数组实现存储,
  private Object[] elementDate;//定义Object数组和长度size

  private static final int DEFALT_CAPACITY=10;//设定初始化长度10

add()方法

public void add(E e){
    //数组扩容
    if(size == elementDate.length){
        Object[] newarr = new Object[elementDate.length(elementDate.length>>1)];//10-->10+(10/2)
        System.arraycopy(elementDate, 0, newarr, 0, elementDate.length);
        elementDate = newarr;
    }
    elementDate[size++] = e;
}
  • LinkedList:使用双向链表实现存储
 class  Node {
    Node  previous;     //前一个节点
    Object  element;    //本节点保存的数据
    Node  next;         //后一个节点
}
  • Vector:用数组实现的List,线程安全
2. Set接口:无序、不可重复。Set加入元素实际上是把元素放入Map的Key处
  • HashSet:无序
  • TreeSet:内部进行排序(使用compareTo()方法)

二. Map接口

存储键(key)-值(value) 对。Map的实现类包括:HashMap、TreeMap、HashTable、Properties

  • HashMap:键不能重复,如果发生重复,新的键值对会替换旧的键值对
  • HashTable

三. 迭代器

  1. 迭代器遍历List
 List<String> list = new ArrayList<String>();
for (Iterator<String> iter = list.iterator(); iter.hasNext();) {
        String temp = iter.next();
        System.out.print(temp + "\t");
        }
  1. 迭代器遍历Set
Set<String> set = new HashSet<String>();
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
        String temp = iter.next();
        System.out.print(temp + "\t");
}
  1. 迭代器遍历Map
Map<String, String> map = new HashMap<String, String>();
//方法一
Set<Entry<String, String>> set= map.entrySet();
for (Iterator<Entry<String, String>> iterator = set.iterator(); iterator.hasNext();) {
        Entry<String, String> entry = iterator.next();
        System.out.println(entry.getKey() + "--" + entry.getValue());
}
//方法二
Set<String> ss = map.keySet();
for (Iterator<String> iterator = ss.iterator(); iterator.hasNext();) {
        String key = iterator.next();
        System.out.println(key + "--" + map.get(key));
}

相关文章

网友评论

    本文标题:JavaSE中的容器

    本文链接:https://www.haomeiwen.com/subject/iajchctx.html