Java集合Collection与Iterator
来源:互联网 发布:java读取zip文件夹 编辑:程序博客网 时间:2024/06/01 09:19
Collection
Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集合。
Collection 中的方法,全部来自API,读者无需硬性记忆,只需牢记:集合类就像容器,显示生活中容器的功能,也就是添加对象、删除对象、清空容器、判断容器是否为空等,集合类就为这些功能提供了对应的方法。
boolean add(E e)该方法用于集合内添加一个元素,如果添加成功集合对象被添加操作改变了,返回true;boolean remove(Object o)删除集中中指定元素o,当集合中包含一个或多个o元素时,该方法只会删除第一个符合条件的元素,删除成功返回true;boolean contains(Object o)判断集合是否包含元素o,如果包含返回true;boolean containsAll(Collection<?> c)判断集合是否包含集合c中的所有元素,如果包含返回true;boolean addAll(Collection<? extends E>c)该方法把集合c里的多有元素添加到指定集合里,如果添加成功,返回true;boolean removeAll(Collection<?> c)从集合中删除集合c里面的所有元素(相当于用调用该方法的集合减集合c),如果成功返回true;boolean retainAll(Collection<?> c)该方法用于从集合中移除未包含在指定c中的所有元素;void clear()清除集合中的所有元素,将集合长度变为0;boolean equals(Object o)该方法是判断由调用该方法的对象与对象o是否相等;int hashCode()返回对象的hashCode()值(根据对象的地址或者字符串或者数字算出来的int类型的数值);boolean isEmpty()判断集合是否为空(判断容器是否为空);int size()返回集合的长度;Iterator<E>iterator()集合调用该方法返回一个迭代器,该方法用于遍历集合;Object[] toArray()将集合转化成数组;<T> T[] toArray(T[] a)将集合转化成指定泛型的数组;
示例:
// List 集合允许重复且有序 Collection c = new ArrayList(); // c.add("Java"); c.add("Java"); c.add("C"); c.add("C#"); c.add("C++"); c.add(5);// 虽然集合内不能存放基本数据类型的值,但是Java支持自动装箱 System.out.println(c);// 输出 [Java, Java, C, C++,5] System.out.println(c.contains(5));// true c.remove(5); System.out.println(c);// 输出 [Java, Java, C, C++] // Set 集合是不允许有重复的且是无序的 Collection mSet = new HashSet(); mSet.add("Java"); mSet.add("Java"); mSet.add("C"); mSet.add("C++"); System.out.println(mSet);// 输出 [Java, C++, C] // c 集合是否完全包含mSet集合中的值 System.out.println(c.containsAll(mSet));// true //c.removeAll(mSet);// 用c集合减去mSet集合里的所有元素 System.out.println(c);// 输出 [C#] //c.clear();// 清空c集合中的所有元素 System.out.println(c);// 输出 [] mSet.retainAll(c);// 控制mSet集合里只剩下c集合里也包含的元素 System.out.println(mSet);// 输出 [] // System.out.println(集合); 能输出 [Java, C++, C....]是因为Collection重写了toString()方法。 String [] d = (String[]) c.toArray(new String[c.size()]); for (String string : d) { //System.out.println(string);// 输出 } Object[] o = c.toArray(); for (Object object : o) { if(object instanceof String){ String s = (String) object; //System.out.println(s);// 输出 } }
1.8新增 defaultboolean removeIf(Predicate<? super E> filter)该方法将会批量删除符合filter条件的所有元素。default Spliterator<E> spliterator() default Stream<E> stream() default Stream<E>parallelStream()
Iterator
Iterator 是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection 系列集合、Map系列集合主要用于盛装其他对象,而Iterator则是主要用于遍历(即迭代访问)Collection 集合中的元素,Iterator对象也被称为迭代器。
Iterator接口隐藏了各种Collection 实现类的底层细节,向应用程序提供遍历Collection集合元素的统一编程接口。
Iterator提供的方法:
boolean hashNext()
如果被遍历的集合元素还没有被遍历完,返回true
Object next()
返回集合中的下一个元素
void remove()
删除集合里上一次next()返回的元素
void forEachRemaining(Consumer action)
这是Java 8 新增的默认方法,该方法可使用Lambda表达式来遍历集合元素。
示例:
Iterator it = c.iterator(); while(it.hasNext()){ String s = (String) it.next(); System.out.println(s); }
Iterator 必须依附于Collection对象,若有一个Iterator对象,则必然有一个与之关联的Collection对象。
Iterator提供了两个方法来迭代访问Collection集合里的元素,并可通过remove()方法删除集合中上一次next()方法返回的集合元素。
当Iterator迭代访问Collection集合元素时,Collection集合里的元素不能改变,只有通过Iterator的remove()删除上一次next()方法返回的集合元素才可以:否则将引发:java.util.ConcurrentModificationException异常。
示例:
Iterator it2 = c.iterator(); while(it2.hasNext()){ String s = (String) it2.next(); if(s.equalsIgnoreCase("C#")){ c.remove(s); } }
Even a small star shines in the darkness.
星星再小,也会发光
- Java集合Collection与Iterator
- 集合(Collection)与迭代器(Iterator)
- 集合(Collection)与迭代器(Iterator)
- Java.集合类.Collection.ArrayList.Iterator
- Java集合----概述、Collection接口、Iterator接口
- Java Collection与集合
- Java中ListIterator和Iterator与collection
- Java容器Collection与迭代器Iterator
- 集合(Collection)与迭代器(Iterator)(转载)
- 集合接口与抽象类 collection接口 Iterator接口
- Java集合概述集Collection 和 Iterator 接口用法详解
- java集合 - Collection - List - Set - Map - Iterator 学习笔记
- Java基础-集合框架2 Collection和Iterator接口
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- Collection 与iterator接口
- Collection与Iterator
- java--collection和Iterator
- Java Collection Iterable Iterator
- 加强版迷你DVD管理器
- 关于合伙人功能类型
- c++ 文章集锦
- JavaScript获取设置div的高度和宽度
- 用java的BigDecimal实现求PI(算法一)
- Java集合Collection与Iterator
- Swift3.0: 获取Wifi SSID
- log4j的NDC/MDC开发与应用,多线程、多平台环境中的跟踪
- Memcached详解
- Python Web 开发学习 - 第一个Python程序
- linux 电源管理 Generic PM之Suspend功能
- Jsoup的使用(详解)
- centos7.2环境中kettle环境搭建及任务推送配置详解
- java语言能干什么