Java集合类之Collection接口详解

简介:

Hello!我是灰小猿,今天和小伙伴分享一个Java项目开发中比较常用的存储数据的方法----集合。

想到集合,可能很多小伙伴都会想到数组,那么集合和数组又有什么样的区别呢?且听大灰狼一一分解哟!

.

什么是集合?

在Java中,集合可以看做是一个容器,如它可以是一个衣柜,里面装满了不同的衣服;它也可以是一个书柜,里面塞满了各种各样不同的书籍,我们可以随时的将它们取出或者放入,并且可以按照一定的顺序存放这些在容器中的元素。

在Java中提供了不同的集合类,也可以说是不同形状的容器,而这些类提供了不同的存储方式,同时还提供了相应的方法。从而方便用户对集合中的元素进行遍历、添加、删除以及提取指定对象等操作。

.

集合和数组有什么区别?

从表面上看,数组和集合都是存储数据的一种方法,但是需要注意了!

数组的存取长度是固定的,而集合的存取长度是可变的,也就是说,你在使用数组的时候,会先将数组的长度定义好,比如100,那么你就只能在这个数组中存放100个数据,而集合就不同了,集合的长度是不固定的,其中的元素个数可以是0、1,也可以是1000或者10000。

在数据的存储上,集合和数组也是有不同的,数组存放的是基本的数据类型,也就是如果是int型,则内部元素就一定是int型,而集合就不一样了,集合是用来存放对象的引用,在集合中的元素可以是int型,string型等任意数据类型。

我们平常在进行开发的时候常用的集合有List集合、Set集合和Map集合,而List集合和Set集合就继承了我们今天要说的Collection接口,所以才将其叫做“爸爸”接口嘛。而且各接口还提供了不同是实现类。这里有一个集合类的继承关系图,小伙伴可以参考:

在这里插入图片描述

那么接下来,大灰狼就来和大家聊一聊这个能够成为List集合和Set集合的继承的接口的“爸爸”接口是怎样的。

.

Collection接口

Collection接口是层次结构中的根接口,构成Collection的单位成为元素,一般来说呢,Collection接口不能直接使用,但是该接口提供了增加、删除元素和管理数据的一些方法,并且由于List集合和Set集合继承了Collection接口,因此这些方法对于List集合和Set集合都是通用的。

下表就是Collection接口常用的一些方法:

方法 功能描述
add(E) 将指定的对象添加到该集合中
remove(Object) 将指定的对象从该集合中移除
IsEmpty() 返回boollean值,判断当前集合是否为空
Iterator() 返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象
Size() 返回int型数值,获取该集合中元素的个数

.

如何遍历集合中的元素

想要遍历集合中的元素,一般都是通过迭代器来实现,Collection接口中的Iterator()方法返回在此Collection接口处进行迭代的迭代器,通过while循环进行遍历。

下面是使用Collection接口进行集合的创建与遍历的过程:

package priject1;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class ArrayList_1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //创建一个Collection接口的列表
        Collection<String> list1 = new ArrayList<>();
        list1.add("a");
        list1.add("b");
        list1.add("c");
        
        //创建一个迭代器用于接收list1集合的迭代器
        Iterator<String> lt = list1.iterator();
        
        while(lt.hasNext())
        {
            //观察lt.hasNext()此时的值
            //System.out.println(lt.hasNext());
            
            String string = (String) lt.next();
            System.out.println(string);
        }
    }

}

运行结果如图所示:

在这里插入图片描述

其中我们需要导入Java.ntil包,这是使用集合类时所需要依据的,it.hasNext()方法的作用是判断是否还有下一个元素,如果有,就用it.next()获取到该元素,并且输出。

Collection接口是集合类的根本,也是集合类的继承类,所以了解Collection接口对于学习集合是十分重要的。

觉得有用记得点赞关注哟!

灰小猿期待与你一同进步!

目录
相关文章
|
1月前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
52 4
|
2月前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
56 3
|
16天前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
58 5
|
17天前
|
安全 Java 编译器
JAVA泛型类的使用(二)
接上一篇继续介绍Java泛型的高级特性。3. **编译时类型检查**:尽管运行时发生类型擦除,编译器会在编译阶段进行严格类型检查,并允许通过`extends`关键字对类型参数进行约束,确保类型安全。4. **桥方法**:为保证多态性,编译器会生成桥方法以处理类型擦除带来的问题。5. **运行时获取泛型信息**:虽然泛型信息在运行时被擦除,但可通过反射机制部分恢复这些信息,例如使用`ParameterizedType`来获取泛型参数的实际类型。
|
17天前
|
安全 Java 编译器
JAVA泛型类的使用(一)
Java 泛型类是 JDK 5.0 引入的重要特性,提供编译时类型安全检测,增强代码可读性和可维护性。通过定义泛型类如 `Box&lt;T&gt;`,允许使用类型参数。其核心原理是类型擦除,即编译时将泛型类型替换为边界类型(通常是 Object),确保与旧版本兼容并优化性能。例如,`Box&lt;T&gt;` 编译后变为 `Box&lt;Object&gt;`,从而实现无缝交互和减少内存开销。
|
2月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
2月前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
65 6
|
6月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
9月前
|
安全 Java 开发者
【JAVA】哪些集合类是线程安全的
【JAVA】哪些集合类是线程安全的

热门文章

最新文章