当前位置: 首页 > news >正文

Java的Collection接口和常用方法(Iterator和增强for)

Collection接口实现类的特点:

public interface Collection<E> extends Iterable<E>

1)Collection实现子类可以存放多个元素,每个元素都可以是Object

2)有些Collection的实现类,可以存放重复的元素,有些不可以

3)有些Collection的实现类,有些是有序的(List),有些不是有序(Set)

4)Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的

Collection接口常用方法,以实现子类ArrayList来演示

1)add:添加单个元素

2)remove:删除指定元素

3)contains:查找元素是否存在

4)size:获取元素个数

5)isEmpty:判断是否为空

6)clear:清空

7)addAll:添加多个元素

8)containsAll:查找多个元素是否都存在

9)removeAll:删除多个元素

package com.ArrListStu;import java.util.ArrayList;
import java.util.List;public class CollectionMethod {public static void main(String[] args) {List list = new ArrayList();//        add:添加单个元素list.add("jack");list.add(10);//会发生自动装箱,将10转为Integer list.add(new Integer(10))list.add(true);System.out.println(list);//        remove:删除指定元素//list.remove(0);删除第一个元素list.remove("jack");//指定删除某个对象System.out.println(list);//        contains:查找元素是否存在if(list.contains(10)){System.out.println("有这个数");}//        size:获取元素个数System.out.println(list.size());//上面删除了一个//        isEmpty:判断是否为空System.out.println(list.isEmpty());//        clear:清空list.clear();System.out.println(list);//        addAll:添加多个元素,只要是实现了Collection接口的对象都能传进去ArrayList list2 = new ArrayList();list2.add("红楼梦");list2.add("三国演义");list.addAll(list2);System.out.println(list);//        containsAll:查找多个元素是否都存在System.out.println(list.containsAll(list2));//        removeAll:删除多个元素list.add("聊斋");list.removeAll(list2);System.out.println(list);}
}

Collection接口遍历元素方式1 -- 使用Iterator(迭代器)

基本介绍:

1)Iterator对象称为迭代器,主要用于遍历Collection集合中的元素

2)所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,即可以返回一个迭代器

3)Iterator的结构:

4)Iterator仅用于遍历集合,Iterator本身并不存放对象

注意:在调用iterator.next() 方法前必须调用iterator.hasNext() 进行检测,若不调用,且下一条记录无效,直接调用iterator.next() 会抛出

迭代器使用案例:

package com.ArrListStu;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;@SuppressWarnings({"all"})
public class CollectionIterator {public static void main(String[] args) throws Exception{Collection col = new ArrayList();col.add(new Book("三国演义","罗贯中",10.1));col.add(new Book("小李飞刀","古龙",5.1));col.add(new Book("红楼梦","曹雪芹",34.6));//现在希望能够遍历集合,指定取出//先得到集合对应的迭代器Iterator iterator = col.iterator();//使用while循环遍历即可while(iterator.hasNext()){  //判断是否还有数据//返回下一个元素,类型是ObjectObject obj = iterator.next();System.out.println(obj);    //动态绑定,obj编译类型是Object,运行类型取决于存放的类型}//快捷键快速生成 while ==> itit 回车//显示所有快捷键的快捷键 ==> ctrl + j//当退出while循环后,这时 iterator迭代器指向最后的元素// 接着往下取会报异常NoSuchElementException//如果希望再次遍历,需要重置迭代器iterator = col.iterator();//把迭代器重新赋给它就行了}
}
class Book{private String name;private String author;private double price;public Book(String name, String author, double price) {this.name = name;this.author = author;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}

Collection接口遍历对象方式2 -- 使用增强for循环

增强for循环,可以代替 iterator迭代器,特点:增强for就是简化版的iterator,本质一样,只能够用于遍历集合或数组

基本语法:

for(元素类型 元素名:集合名或数组名){

        访问元素

}

package com.ArrListStu;import java.util.ArrayList;
import java.util.Collection;public class CollectionFor {public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("三国演义","罗贯中",10.1));col.add(new Book("小李飞刀","古龙",5.1));col.add(new Book("红楼梦","曹雪芹",34.6));//使用增强for//解读://可以在Collection使用//底层仍然是迭代器//可以理解成增强for就是简化版本的迭代器遍历//快捷方式 I    (大写的 i)//增强for在Collection使用for(Object obj : col){System.out.println(obj);}//增强for也可以直接在数组使用int nums[] = {1,8,10,99,2};for(int i : nums){System.out.println(i);}}
}
http://www.dtcms.com/a/562171.html

相关文章:

  • 赣州网站建设方案婚纱官网
  • 巨腾外贸网站建设网站有什么功能
  • C++ 的关键字(保留字)完整介绍
  • 诸城网站建设诸城校园招生网站建设的简报
  • JS面试基础(2) 流程控制语句与函数及其作用域
  • 构建最新的Linux系统
  • 2026年EAAI SCI1区TOP,具有维度适应性遗传的差分进化算法,深度解析+性能实测
  • 为什么做这个网站反馈问题画册专业设计公司
  • 找做网站公司需要注意什么条件网站建设的电话销售
  • 网站备案上海pos机网站模板
  • 基于C#的贵州省黔北地区乡村避暑生活共享平台设计与实现(源码+论文+部署+安装)
  • DevOps(devops/k8s/docker/Linux)学习笔记-3
  • 中恒建设职业技术培训学校网站网页编辑打印工具
  • 阿里云医疗网站建设手递手个人求职信息网
  • OpenHarmony Location Kit技术详解:定位、地理围栏与编码转换
  • 个人网站做的类型如何设置企业网站
  • JVM Full GC 优化指南
  • 如何在百度网站收录提交入口快速开发平台破解版
  • Linux系统编程——进程退出及状态回收
  • j动态加载网站开发wordpress域名如何申请
  • 响应式设计网站给别人做网站会连累自己吗
  • 赣榆网站建设xxiaoseo广西美丽乡村建设网站
  • 3、电机控制——VF控制学习总结
  • 多表分页联查——EF Core方式和Dapper方式
  • 做网站要找什么公司信息门户网站制作费用
  • wordpress网站后缀网站开发文档网站
  • 营销单页网站模板网站建设 6万贵不贵
  • 体育西网站开发设计深圳市住房和建设局官网
  • 数据结构 10 二叉树作业
  • 网站建设视频教程 百度云如何做网站赚钱6