Java-Collection类
来源:互联网 发布:国密算法sm2证书制作 编辑:程序博客网 时间:2024/06/05 17:35
Collection类
Collection类:接口.表示一组对象,这些对象也称为Collection的元素.它提供更具体的子接口(如 Set 和 List)实现.
集合的继承体系图.
常用功能:
添加功能:
boolean add(Object e):给集合中添加指定的元素.
boolean addAll(Collection c):给集合中添加一个集合中的元素.
删除功能:
void clear():删除一个集合中的所有元素(暴力删除).
boolean remove(Object o):删除一个集合中的指定元素.
boolean removeAll(Collection c):删除指定集合中的所有元素.删除一个也是删除.
判断功能:
boolean contains(Object o):判断一个集合中是否包含一个指定的元素.
boolean containsAll(Collection c):判断一个集合中是否包含另一个集合.包含所有元素.
boolean isEmpty():判断集合是否为空.
交集功能:
boolean retainAll(Collection c):A与B集合做交集,交集的元素去A集合.返回值boolean表达的意识是A集合中的元素是否发生变化,如果发生变化,就返回true;否则,false.
获取功能:
int size():获取集合中的元素数.
Iterator<E> iterator():迭代器
迭代器原理图:
转化功能:
Object[ ] toArray():将集合转化为数组.
相关代码:
package weotes;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class CollectionDemo {public static void main(String[] args) {Collection c=new ArrayList();Collection c2=new ArrayList();c.add("I");c.add("Love");c.add("立华奏");c2.add("you");//添加功能System.out.println("add:"+c.add("you"));System.out.println("addAll:"+c.addAll(c2));System.out.println("-------------");//删除功能System.out.println("remove:"+c.remove("you"));System.out.println("removeAll:"+c.removeAll(c2));System.out.println("-------------");//判断功能System.out.println("contains:"+c.contains("you"));System.out.println("containsAll:"+c.containsAll(c2));System.out.println("-------------");//交集功能:System.out.println("retainAll:"+c.retainAll(c2));System.out.println("-------------");//获取功能sizeSystem.out.println("c:"+c.size());System.out.println("c2:"+c2.size());System.out.println("-------------");//输出System.out.println("c:"+c);System.out.println("c2:"+c2);System.out.println("-------------");//迭代器for(Iterator it=c2.iterator();it.hasNext();){String s=(String)it.next();System.out.println(s+"---"+s.length());}System.out.println("-------------");//转化功能Object[] obj=c2.toArray();for(int i=0;i<obj.length;i++){String s=(String)obj[i];System.out.println(s);}}}
结果为:add:true
addAll:true
-------------
remove:true
removeAll:true
-------------
contains:false
containsAll:false
-------------
retainAll:true
-------------
c:0
c2:1
-------------
c:[]
c2:[you]
-------------
you---3
-------------
you
集合和数组的区别?
1)长度的区别:
数组:长度是固定的;
集合:长度是可变的
2)存储数据类型的区别:
数组:可以存储引用类型,可以存储基本数据类型
集合:只能存储引用类型
3)存储元素的区别
数组:在同一个数组中,只能存储同一种数据类型的元素;
集合:可以 存储多种数据类型的元素;
List集合:List集合是一个有序的集合(存储元素和取出元素是一致的!),该元素中的元素是可以重复的.
特有功能:
添加功能:
void add(int index,Object element):在列表的指定位置插入指定元素.
删除功能:
Object remove(int index):删除列表指定位置的元素,返回被删除的元素.
获取功能:
ListIterator listIterator():列表迭代器:List集合的专有遍历方式
列表迭代器接口中有以下几个方法:
boolean hasNext():判断是否有下一个可以迭代的元素(正向遍历)
Object next():如果有可以遍历的元素,就获取这个元素
boolean hasPrevious():判断是否有上一个可以迭代的元素(逆向遍历)
Object previous():如果有上一个可以迭代的元素,就获取上一个元素.
注意: 要使用逆向遍历,前提必须有正向遍历存在,直接使用逆向遍历,没有意义!
Object get(int index):返回列表中的指定位置的元素.
替换:
set(int index,Object element):用指定元素替换列表指定位置的元素.
相关代码:
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListDemo {public static void main(String[] args) {List list=new ArrayList();//添加功能list.add("I");list.add("Love");list.add("立华奏");list.add(2, "you");//获取功能getSystem.out.println("get:"+list.get(2));System.out.println("-------------");//删除功能list.remove(2);//List专有迭代器ListIterator it=list.listIterator();while(it.hasNext()){String s=(String)it.next();System.out.println(s+"---"+s.length());}System.out.println("-------------");//逆向遍历while(it.hasPrevious()){String s=(String)it.previous();System.out.println(s+"---"+s.length());}System.out.println("-------------");//替换功能setSystem.out.println("set:"+list.set(2, "you"));}}
结果为:get:you
-------------
I---1
Love---4
立华奏---3
-------------
立华奏---3
Love---4
I---1
-------------
set:立华奏
注意:java.util.ConcurrentModificationException:并发修改异常:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
原因:当前我们用迭代器去遍历元素,使用集合添加的元素,对于迭代器不知道集合添加了这个元素,所以会发生这个异常
描述:使用迭代器去遍历集合,是不能直接集合添加元素!
解决方案:1)使用迭代器遍历集合,使用迭代器添加元素.
2)使用集合遍历,使用集合添加元素.
- Java中的Collection类
- Java中的Collection类
- Java中的Collection类
- Java中的Collection类
- Java中的Collection类
- Java中的Collection类
- Java中的Collection类
- Java容器类--Collection
- Java--collection集合类
- Java-Collection类
- Java Collection类
- 【java】【java Collection】Collection
- java Collection类的使用
- Java集合类(Collection)
- java的集合类collection
- Java Collection中的List类
- Java Collection中的Set类
- Java基础-Collection类详解
- SpringBoot学习笔记 入门
- spring源码:创建单例对象时用到了ObjectFactory匿名类
- 微信小程序图片
- 如何创建并运行 java 线程
- Python 的下载安装和第一个Python程序
- Java-Collection类
- php 微信消息接口
- C++ linklist
- 洛谷P1962 斐波那契数列
- 【云星数据---大数据部集群署系列003】:scala部署方案
- 正则表达式基本知识
- less不常见用法备用
- 集大成之作 | 《尽在双11:阿里巴巴技术演进与超越》重磅发售!
- 在哪里找最好用的CAD看图软件下载使用