热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java中collection接口_Java中Collection接口的基础介绍

1-1.概述集合,是Java中提供的一种容器,可以用来存储多个数据。集合与数组的区别:数组的长度是固定不变的,集合的长度是可

1-1.概述

集合,是Java中提供的一种容器,可以用来存储多个数据。

集合与数组的区别:数组的长度是固定不变的,集合的长度是可变的;数组中存储的是同一类型的元素,可以存储基本数据类型,也可以存储对象,而在集合中只能对象。

1-2.集合的基本框架介绍

常见集合有:Vector集合(有序集合),ArrayList集合(有序集合),LinkedList集合(有序集合),TreeSet集合(无序集合,存入和取出的顺序可能不一样),HashSet集合(无序集合,存入和取出的顺序可能不一样),LinkedHashSet集合(有序集合)。

在学习集合中,应该掌握如何使用集合存储数据;会遍历集合,把数据取出来;掌握每种集合的特性。

1-3.LIst接口:

是Vector集合,ArrayList集合,LinkedList集合的共性抽取,形成的父类(接口);

1).是有序的集合(存储和取出元素的顺序相同)。

2).允许存储重复的元素。

3).有索引,可以使用普通的for循环遍历。

1-4.Set接口:

是TreeSet集合,HashSet集合的共性抽取,形成的父类(接口),LinkedHashSet集合(有序集合)是HashingSet的子类;

1).不允许存储重复的元素;

2).没有索引(不能使用普通的for循环遍历)。

Collection接口:

定义的是所有单列集合中共性的方法;

所有的单列集合都可以使用共性的方法。

没有带索引的方法。

集合的学习方式:

1).学习顶层:学习顶层接口/抽象类中的共性方法,所有子类都可以使用。

2).使用底层:底层不是接口就是抽象类,无法创建对象使用,需要使用底层的子类创建对象使用。

1-5.Collection的常用功能:

1).public bollenan add(E e);用于把给定对象添加到当前集合中;

2).public clear();用于清除集合中的所有元素;

3).public boolean remove(E e);把给定的对象在当前集合中删除;

4).public boolean isEmpty();判断是否为空;

5).public int size();返回集合中元素的个数;

6).public boolean contains(E e);用于判断集合中是否含有给定的对象;

7).public Object[ ] toArray();把集合中的元素存储到数组中。

2-1.Iterator接口的介绍

是对集合进行迭代的迭代器。

java.util.Iterator接口:迭代器(对集合进行遍历)。

2-2.Iterator的两个常用方法:

1).boolean hasNext();

判断集合中是否还有下一个元素,若有则返回ture,没有则返回flase。

2).E next();

判断迭代的下一个元素(做两件事:先去除下一个元素,然后指针后移一位)。

注意:Iterator迭代器是接口,无法使用,需要使用Iterator接口的实现类的对象。

获取实现类的方法比较特殊,在Colleation接口中有一个方法叫iterator(),这个方法返回的就是迭代器的实现类对象。

Iterator  iterator()返回的就是在此Colleation的元素上进行迭代的迭代器。

2-3.迭代器使用步骤

1).使用集合中的方法iterator获取迭代器的实现类对象,使用Iterator接口接收(这是一个多态)。

2).使用Iterator接口中的方法hasNext判断是否还有下一个元素。

3).使用Iterator接口中的方法next取出集合中下一个元素。

注意:Iterator接口是有泛型的,迭代器的泛型紧跟着集合走,集合是什么泛型,迭代器就是什么泛型。

当没有元素可以在取出时就抛出异常(NoSuchElementException)。

2-4.增强for循环

其底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写。

是Java1.5之后的特性。

Collection extends Iterator:所有的单列集合都可以使用增强for循环。

public interface Iterable实现这个接口允许对象成为“foreach”语句的目标。

增强for循环是用来遍历集合和数组的。

格式:

for(集合或数组的数据类型 变量名:集合名或数组名){ S.out(变量名);}

注意:该for循环必须有被遍历的目标,目标只能是Collection或者都是数组,且该for循环仅作为遍历操作出现,不能在遍历的过程中对元素进行增删操作。



推荐阅读
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
author-avatar
书友71424043
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有