[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

本文主要是介绍[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

        (一)Iterable

                1. 介绍
                2. 常见方法

        (二)Collection

                1. 介绍
                 2. 常见方法

        (三) List 

                1. 介绍
                2. 常见方法

总结


(一) Iterable


1. 介绍

Iterable接口是Java中的一个接口,它是集合框架中的根接口之一。Iterable接口表示实现了迭代功能,即可以通过迭代器遍历其中元素的类。它定义了一个抽象方法iterator(),该方法返回一个实现了Iterator接口的迭代器对象,通过这个迭代器对象可以依次访问集合中的元素。

总的来说,Iterable接口为集合类提供了统一的遍历方式,使得集合类可以通过for-each循环来遍历其中的元素,提供了更加便利和统一的遍历方式。

使用迭代器遍历集合,例如:

 2.  常见方法
  • boolean hasNext():如果迭代器有更多元素,则返回true。
  • E next():返回迭代器中的下一个元素。

下面是一个简单的示例,演示了如何使用迭代器遍历集合:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("cherry");// 使用迭代器遍历Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);}}
}

(二) Collection

1. 介绍

在Java中,Collection是一个接口,它代表一组对象,这些对象通常被称为集合。Collection接口提供了一组操作集合的方法,包括添加、删除、遍历、查找等操作。它是Java集合框架的基础,定义了所有集合类共同的行为。Collection接口有很多实现类,比如List、Set和Queue等

 2.  常见方法
  • int size():返回集合中的元素数量。
  • boolean isEmpty():如果集合为空,则返回true。
  • boolean contains(Object o):如果集合包含指定的元素,则返回true。
  • boolean add(E e):将指定的元素添加到集合中。
  • boolean remove(Object o):从集合中移除指定的元素(如果存在)。
  • Iterator<E> iterator():返回在集合上进行迭代的迭代器。

下面是一个简单的示例,演示了如何使用Collection接口:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;class Main {public static void main(String[] args) {// 创建一个ArrayList对象,它是Collection接口的实现类Collection<String> collection = new ArrayList<>();// 添加元素collection.add("apple");collection.add("banana");collection.add("cherry");// 遍历集合 -- 使用for-each循环遍历集合for (String element : collection) {System.out.println(element);}// 获取集合中元素的个数int size = collection.size();System.out.println("Size: " + size);// 判断集合是否为空boolean isEmpty = collection.isEmpty();System.out.println("Is empty: " + isEmpty);// 判断集合中是否包含指定元素boolean contains = collection.contains("banana");System.out.println("Contains 'banana': " + contains);// 从集合中移除元素collection.remove("banana");// 再次遍历集合 -- 使用迭代器遍历集合Iterator<String> iterator = collection.iterator();while (iterator.hasNext()){String element = iterator.next();System.out.println(element);}}
}


 (三) List 


1. 介绍

在Java中,List是一个接口,规范了ArrayList 和 LinkedList中要实现的方法。它继承自Collection接口,代表一个有序、可重复的集合。

ArrayList:实现了List接口,底层为动态类型顺序表

LinkedList:实现了List接口,底层为双向链表

 2.  常见方法
  • boolean add(E e):将指定的元素添加到列表的末尾。
  • void add(int index, E element):将指定的元素插入到列表中的指定位置。
  • E get(int index):返回列表中指定位置的元素。
  • E remove(int index):移除列表中指定位置的元素。
  • int size():返回列表中的元素数量。
  • boolean isEmpty():如果列表为空,则返回true。
  • boolean contains(Object o):如果列表包含指定的元素,则返回true。
  • Iterator<E> iterator():返回在列表上进行迭代的迭代器。

下面是一个简单的示例,演示了如何使用List接口:

import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;public class Main {public static void main(String[] args) {// 创建一个ArrayList对象,它是List接口的实现类List<String> list = new ArrayList<>();// 将指定的元素添加到列表的末尾list.add("apple");list.add("banana");list.add("cherry");// 将指定的元素插入到列表中的指定位置list.add(1, "orange");// 返回列表中指定位置的元素String secondElement = list.get(1);System.out.println("Second element: " + secondElement);// 移除列表中指定位置的元素list.remove(2);// 返回列表中的元素数量int size = list.size();System.out.println("Size: " + size);// 如果列表为空,则返回trueboolean isEmpty = list.isEmpty();System.out.println("Is empty: " + isEmpty);// 如果列表包含指定的元素,则返回trueboolean contains = list.contains("banana");System.out.println("Contains 'banana': " + contains);// 返回在列表上进行迭代的迭代器Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);}}
}

总结

综上所述,Iterable接口用于表示可以迭代的集合,Collection接口是一组对象的集合,List接口是有序的集合,可以根据索引访问其中的元素。

这篇关于[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598619

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。