java集合类

 

此类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。

  有一个特点是,上述所有的集合类都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。也就是说如果是先Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口,比如HashSet,HashMap;而那些元素有序的集合,实现的一般都是LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如ArrayList。

  还有一个特点就是抽象类的使用。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作量大大降低。

 

一、Collection接口

1、集合可以理解为一个动态的对象数组,不同的是集合中的对象内容可以任意扩充

2、集合的特点:

性能高

容易扩展和修改

3、Collection的常用子类

List

Set

Queue

 

<-------查看java API:由在线API文档->JDK中文版   本次所介绍集合类在java.util包下------>

 

二、List接口

1、List接口可以存放任意的数据,而且在List接口中内容是可以重复的

2、List接口常用子类:

ArrayList

Vector

3、常用操作:

判断集合是否为空:boolean isEmpty()

查找指定的对象是否存在:int indexOf(Object o)

代码示例:

运行结果:

那么使用Vector有何区别呢?

 

 

三、Set接口

1、Set接口中不能加入重复元素,但是可以排序

2、Set接口常用子类

散列存放:HashSet

有序存放:TreeSet

 

四、Iterator接口

1、集合输出的标准操作:

标准做法,使用Iterator接口

2、操作原理:

Iterator是专门的迭代输出接口,迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出

 

方法摘要:

boolean hasNext() 
          如果仍有元素可以迭代,则返回 true
E next() 
          返回迭代的下一个元素。
void remove() 
          从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

代码示例:

执行结果:

注意点:在迭代输出的同时,不能对集合元素进行删除

否则会报错:

 

五、Map接口

1、保存形式:key—>value的方式保存

例如:小雪:13266668888

2、常用子类:

HashMap:无序存放,key不允许重复

Hashtable:无序存放,key不允许重复

代码示例:

执行结果:

  

附几篇相关文章:

Java 集合类详解

Java集合类型详解

  

  

  

  

posted @   小金乌会发光-Z&M  阅读(254)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示