Java基础--Collection方法
一.API图示
二.常用方法
0.构造函数
// Collection c = new Collection(); //错误,因为接口不能实例化
Collection c = new ArrayList();//ArrayList是Collection下的一个子类
1.添加功能
boolean add(Object obj) |
添加一个元素 |
boolean addAll(Collection c) |
添加一个集合的元素 |
示例1:
Collection c = new ArrayList();
System.out.println("add:"+c.add("hello"));//true,add这个方法永远返回true
示例2:添加一个集合
// 创建集合1
Collection c1 = new ArrayList();
c1.add("abc1");
c1.add("abc2");
// 创建集合2
Collection c2 = new ArrayList();
c2.add("abc1");
c2.add("abc2");
// boolean addAll(Collection c):添加一个集合的元素
System.out.println("addAll:" + c1.addAll(c2));//将c2内的所有元素添加到c1里面
2:删除功能
void clear() |
移除所有元素 |
boolean remove(Object o) |
移除一个元素 |
boolean removeAll(Collection c) |
移除一个集合的元素(是一个还是所有) |
示例1:
System.out.println("remove:" + c.remove("hello"));
示例2:移除一个集合
//只要有一个元素被移除了,就返回true。
System.out.println("removeAll:"+c1.removeAll(c2));
3:判断功能
boolean contains(Object o) |
判断集合中是否包含指定的元素 |
boolean containsAll(Collection c) |
判断集合中是否包含指定的集合元素(是一个还是所有) |
boolean isEmpty() |
判断集合是否为空 |
示例1:
示例2:
//只有包含所有的元素,才叫包含
System.out.println("containsAll:"+c1.containsAll(c2));
4:获取功能:迭代器的详细使用方法:迭代器(Iterator)
Iterator<E> iterator()(重点)
(1)在迭代器下的专用方法:
1)Object next():获取元素,并移动到下一个位置。
2)boolean hasNext():如果仍有元素可以迭代,则返回 true。
(2)可能出现的异常
NoSuchElementException:没有这样的元素,因为你已经找到最后了。
5:长度功能
int size() |
元素的个数 |
6:交集功能
boolean retainAll(Collection c) |
两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢? |
示例:
//假设有两个集合A,B。
//A对B做交集,最终的结果保存在A中,B不变。
//返回值表示的是A是否发生过改变。
System.out.println("retainAll:"+c1.retainAll(c2));
7:把集合转换为数组
Object[] toArray()
三.迭代器(Iterator)
1.以图会友
2.集合的普通遍历
/** * 集合的遍历。其实就是依次获取集合中的每一个元素。 * Object[] toArray():把集合转成数组,可以实现集合的遍历 */ public class CollectionDemo3 { public static void main(String[] args) { // 创建集合对象 Collection c = new ArrayList(); // 添加元素 c.add("hello"); // Object obj = "hello"; 向上转型 // Object[] toArray():把集合转成数组,可以实现集合的遍历 Object[] objs = c.toArray(); for (int x = 0; x < objs.length; x++) { // 我知道元素是字符串,我在获取到元素的的同时,还想知道元素的长度。 // System.out.println(objs[x] + "---" + objs[x].length()); // 上面的实现不了,原因是Object中没有length()方法 // 我们要想使用字符串的方法,就必须把元素还原成字符串 // 向下转型 String s = (String) objs[x]; System.out.println(s + "---" + s.length()); } } } |
3.升级--迭代器遍历
//Iterator iterator():迭代器,集合的专用遍历方式 public class IteratorDemo { public static void main(String[] args) { // 创建集合对象 Collection c = new ArrayList(); // 创建并添加元素 c.add("hello"); Iterator it = c.iterator(); // iterator()实际返回的肯定是子类对象,这里是多态 // 判断是否有下一个元素,有就获取,没有就不搭理它 while (it.hasNext()) { // System.out.println(it.next());第一种方式 String s = (String) it.next();//第二种,将it强转为String输出 System.out.println(s); } } } |
四.遍历练习
/** * 问题1:能用while循环写这个程序,我能不能用for循环呢? * 问题2:不要多次使用it.next()方法,因为每次使用都是访问一个对象。 */ public class IteratorTest2 { public static void main(String[] args) { // 创建集合对象 Collection c = new ArrayList(); // 创建学生对象 Student s1 = new Student("林青霞", 27); Student s2 = new Student("风清扬", 30); // 把学生添加到集合中 c.add(s1); c.add(s2); // 遍历 Iterator it = c.iterator(); while (it.hasNext()) { Student s = (Student) it.next(); System.out.println(s.getName() + "---" + s.getAge()); // NoSuchElementException 不要多次使用it.next()方法,因为在一条语句中多次使用next()方法,每一次调用都会跳转到下个元素 // System.out.println(((Student) it.next()).getName() + "---" + ((Student) it.next()).getAge()); } // for循环改写,这样做效率高,因为将it定义在了for里面,循环结束后,变量立刻销毁 // for(Iterator it = c.iterator();it.hasNext();){ // Student s = (Student) it.next(); // System.out.println(s.getName() + "---" + s.getAge()); // } } } //上例使用到的Students类 public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } //get,set略 @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } } |
相关面试题:
1.数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?
2.Collection和Collections的区别?
Collection:是单列集合的顶层接口,有子接口List和Set;
Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方;
Java基础--Collection方法相关推荐
- Java基础学习——方法
Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...
- java中collection方法_Java 8中的Collector toCollection()方法
toCollection()Java中的Collector类的方法返回一个Collector,该Collector以遇到的顺序将输入元素累积到一个新的Collection中. 语法如下static & ...
- Java基础02 方法与数据成员
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在Java基础01 从HelloWorld到面向对象,我们初步了解了对象(obje ...
- JAVA基础——toString()方法,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- Java 基础 Collection集合
package cn.itcast.demoDateformat;import java.util.ArrayList; import java.util.Collection;/* * List接口 ...
- Java 基础 Collection集合拓展
package cn.itcast.demoDateformat;import java.util.ArrayList; import java.util.Collection; import jav ...
- Java基础 五 方法
方法 1.1 方法概述 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法. 如:小明同学在路边准备坐车来学校学习.这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢 ...
- Java基础语法——方法
每日正能量 人生如逆旅,我亦是行人,乱花渐欲迷人眼,沉醉不知归路.既然无法留住身边的美好,那就一直往前,看到更多. 方法 方法是完成特定功能的.相对独立的程序段,与其它编程语言中的子程序.函数等概念相 ...
- Java基础-Collection集合接口(List及Set)
Collection集合接口 1.Collection接口的常用方法 2.Collection集合迭代 3.contains方法解析 4.集合中元素的删除 5.List接口的特有方法 6.Set接口 ...
最新文章
- 在用虚拟机做Windows Server 2008 R2实验时应注意的问题
- ProgressDialog知识要点
- 计算机usb共享网络泄密,杜绝USB泄密 MyUSBOnly
- 使用AutoMapper 处理DTO数据对象的转换
- 朝鲜时蔬(分数据点写算法+毒瘤数学)
- 提高你的javascript代码逼格系列之函数与数组
- 智能关机软件 c语言,智能关机软件
- python 并列条形图_python – 来自两个pandas数据框的分组条形图
- Hello TensorFlow
- java歌词高亮显示滚动_js如何处理音乐播放器的歌词文件达到高亮以及滚动的效果?...
- jq 实现头像(气泡式浮动)
- 论文查重率多少合格?
- ucosii等待信号量函数中pend前后怎样执行
- XML格式化在线工具
- 2020计算机考研初试考试先后顺序,2020考研初试考试时间及科目安排
- 解决linux“嘟嘟”的报警声
- 论文阅读9 | COCAS:一个大规模换装的行人重识别数据集
- 数据可视化优秀作品欣赏
- 网站刷关键词_如何提升网站关键词及长尾词的排名 - 百度排名提升软件
- 2008年度LINUX与UNIX SHELL编程指北系列大片