Map集合和Collection集合的区别? 1, Map中一次存储是键值对。 Collection中一次存储是单个元素。 2, Map的存储使用的put方法。 Collection存储使用的是add方法。 3, Map集合没有迭代器,Map的取出,是将Map转成Set,在使用迭代器取出。 Collection取出,使用就是迭代器。 4, 如果对象很多,必须使用集合存储。 如果元素存在着映射关系,可以优先考虑使用Map存储或者用数组, 如果没有映射关系,可以使用Collection存储。 8、迭代器:Iterator(Map集合没有迭代器) (1)迭代器就是取出集合元素的方式 (2)迭代器的作用 因为每个集合中元素的取出方式都不一样,于是就把元素的取出方式进行抽取,并定义在集合内部, 这样取出方式就可以直接访问集合内部的元素; 而每个容器的数据结构不同,所以取出动作的细节也不一样,但是有共性内容:判断和取出。 那么就将共性内容进行抽取,从而形成了接口Iterater (3)获取迭代器的方法: Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。 Iterator<E> iterator() 返回在此 set 中的元素上进行迭代的迭代器。 (3)迭代器方法: boolean hasNext() 如果仍有元素可以迭代,则返回 true。 E next() 返回迭代的下一个元素。 void remove() 从迭代器指向的collection中移除迭代器返回的最后一个元素(可选操作)。 9、列表迭代器:ListIterator (1)List集合特有的迭代器ListIterator是Iterator的子接口,在迭代时,不可以通过集合对象的 方法操作集合中的元素,因为会发生ConcurrentModificationException(当方法检测到对象的并发修改, 但不允许这种修改时,抛出此异常) (2)Iterator方法有限,只能对元素进行判断、取出和删除的操作 ListIterator可以对元素进行添加和修改动作等。 (3)获取列表迭代器方法: ListIterator<E> listIterator() 返回此列表元素的列表迭代器(按适当顺序)。 ListIterator<E> listIterator(int index) 返回此列表中的元素的列表迭代器(按适当顺序),从列表中指定位置开始。 (4)列表迭代器方法: void add(E e) 将指定的元素插入列表(可选操作)。 boolean hasPrevious() 如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。 int nextIndex() 返回对 next 的后续调用所返回元素的索引。 E previous() 返回列表中的前一个元素。 int previousIndex() 返回对 previous 的后续调用所返回元素的索引。 void set(E e) 用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。 10、堆栈和队列 堆栈:先进后出,比如杯子里的水 队列:先进先出,比如水管的水 |