java自学笔记之集合概述一
来源:互联网 发布:数控镗床编程代码 编辑:程序博客网 时间:2024/04/29 06:01
1.集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用
2.Collection集合的基本功能测试:Collection c=new ArrayList()
3.Collection集合的高级功能测试:
(1)boolean addAll(Collection c):添加一个集合的元素
(2)boolean removeAll(Collection c):移除一个集合的元素,只要有一个被移除了就返回true
(3)boolean containsAll(Collection c):判断集合中是否包含指定的集合元素。只有包含所有的元素,才返回true
(4)boolean retainAll(Collection c):找出两个集合中相同的元素。返回的布尔类型表示调用这个方法的集合中的元素是否发生改变
改变了就返回true,没改变就返回false.
4.集合的遍历之集合转数组遍历:
(1):Object[] toArray():把集合转换成数组,可以实现集合的遍历
(2)代码:
Object[] objs=c.toArray(); for(int x=0;x<objs.length;x++){ //System.out.print(objs[x]+" "); String s=(String)objs[x]; System.out.println(s+"------"+s.length()); }
5.Collection集合的遍历之迭代器遍历:
(1)Iterator iterator():迭代器,集合的专用遍历方式
(2)Object next():获取元素,并移动到下一个位置
(3)boolean hasNext():如果仍有元素可以迭代,则返回true
(4)代码:
Iterator it=c.iterator(); while(it.hasNext()){ //System.out.println(it.next()); String s=(String)it.next(); System.out.println(s); }6.迭代器使用问题的探讨:不要多次使用it.next()方法,因为每次使用都是访问一个对象
7.List集合特有的功能概述和测试:
(1)添加功能:void add(int index,Object element)
(2)获取功能:Object get(int index)
(3)列表迭代器:ListIterator listIterator():List集合特有的迭代器
(4)删除功能:Object remove(int index):根据索引删除元素,返回被删除的元素(还有别的方法,不只这一个)
(5)修改功能:Object set(int index,Object element):根据索引修改元素,返回被修改的元素
8.List集合的特有遍历功能:
(1)直接for循环
for(int x=0;x<list.size();x++){ String s=(String)list.get(x); System.out.print(s+" "); }9.ListIterator的特有功能:
(1)ListIterator listIterator():List集合特有的迭代器(当然也有Collection的迭代器)
该迭代器继承了Iterator迭代器,所以就可以直接使用hasNext()和next()方法
(2)特有功能:
Object previous():获取上一个元素
boolean hasPrevious():判断是否有元素
*ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。
10.并发修改异常的产生原因及解决方法:
(1)ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常
(2)产生的原因:迭代器是依赖于集合而存在的,在判断成功后,集合中新添加了元素,而迭代器却不知道,所以就报错,这个错叫并发修改异常
(3)如何解决:A:迭代器迭代元素,迭代器修改元素
而Iterator迭代器没有添加功能,所以我们使用其子接口ListIterator
代码:
List list=new ArrayList(); list.add("hello"); list.add("world"); list.add("java"); ListIterator lit=list.listIterator(); while(lit.hasNext()){ String s=(String)lit.next(); if("world".equals(s)){ lit.add("javaee"); } } System.out.println(list); * 结果:[hello, world, javaee, java]11.B:集合遍历元素,集合修改元素(普通for循环)
代码
List list=new ArrayList(); list.add("hello"); list.add("world"); list.add("java"); for(int x=0;x<list.size();x++){ String s=(String)list.get(x); if("world".equals(s)){ list.add("javaee"); } } System.out.println(list); 结果:[hello, world, java, javaee]
- java自学笔记之集合概述一
- java自学笔记之集合框架
- Java集合之概述
- Java集合(一):Java集合概述
- Java集合(一):Java集合概述
- JAVA集合(一)概述
- Java集合类一概述
- Java集合类概述《一》
- [Java集合](一)概述
- 【自学笔记】集合类概述(有点没理解清楚)
- JAVA自学笔记(一):基础
- java自学笔记(一)
- Java自学笔记(一)
- Java集合系列一:集合概述
- Java集合概述(一):Set集合
- Java集合归纳-<一>集合概述
- 黑马程序员 java自学笔记 集合
- 自学 java 笔记 day13(集合)
- WORD操作点滴
- Struts2 upload
- 根据指定字符集拆分任意字符串
- Android 6.0 新特性
- C/C++编译链接与装载深入浅出
- java自学笔记之集合概述一
- 数字化校园建设方案
- leetcode_c++:Contains Duplicate(217)
- React/React Native 的ES5 ES6写法对照表
- POI之PPT中生成表格简单实例
- ios学习路线—iOS高级(AFNetworking)
- 谈谈商业合作中的“男人来自火星,女人来自金星”
- 258. Add Digits
- 第十三周项目2(1)