首页 > 编程语言 >java集合框架

java集合框架

时间:2024-05-30 21:56:01浏览次数:28  
标签:java 迭代 框架 元素 接口 collection 集合

java集合框架

前言:本节我们来学习java集合框架

1.0 什么是集合

集合便是对象的容器,定义了多个对象进行操作的常用方法

集合和数组的区别:

1 数组长度固定,集合长度不固定

2 数组可以存储基本类型和引用类型,集合只能存储引用类型。

我们在使用集合时,需要导入java.utill的所有内容

1.1 Collection体系集合

collection是该体系的根节点,它的子节点由List和Set

List接口的特点:有序,有下标,元素可重复,有序,即存储顺序就是元素插入到list中的顺序,

且可以根据下标来根据顺序进行访问。

Set接口的特点:无序,无下标,元素不能重复。

上面的这三者是接口,规定了要实现的内容,具体的内容必须由接口的子类来实现,所以上面这

三者是无法实例化的。我们来看一下正Collection体系的图:

1.2 Collection父接口

该接口的方法:

1. 添加功能
    boolean add(E e)
        添加一个元素
    boolean addAll(Collection c)  
        添加一批元素
2. 删除功能
   boolean remove(Object o)
       删除一个元素
3. 判断功能
   boolean contains(Object o)
       判断集合是否包含指定的元素
   boolean isEmpty()  
       判断集合是否为空(集合中没有元素)
4. 获取功能
   int size()  
      获取集合的长度
5. 转换功能
   Object[] toArray()
       把集合转换为数组

还有其他方法请查看api

需要注意的是,collection是接口,我们无法直接实例化,可以借助指向其子类的对象来实例

化,此时我们称其为实现类这就体现了java的多态特点,比如我们可以指向ArrayList,由于下

标是在其实现类中实现的,所以不能直接使用下标进行访问,如果我们利用类型转化将其转化

为ArrayList,就可以使用下标对其进行访问,由之前多态的学习我们可以知道,对于在子类中

被重载的方法,如果我们用父类执行子类的对象,那么这些方法可以在父类中使用,对于接口

也是这样。

对于集合的遍历,我们可以使用增强for,也可以使用迭代器,java中提供了迭代器接口,由不同

的类进行了实现。迭代器接口定义了三个方法 hasNext() Next() remove()

第一个方法是判断集合中是否存在下一个元素,第二个方法是将引用转向下一个元素,第三个

方法是用于迭代器中的对集合中元素进行删除的方法。

import java.util.*;

import com.corejava.test.*;

public class Main {
    public static void main(String[] args) {
        Collection collection = new ArrayList<>();
        collection.add("1");
        collection.add("2");
        System.out.println(collection.size());
        collection.remove("1");
        collection.add("dada");
        System.out.println(collection);
        // 增强for
        for (Object o : collection) {
            System.out.println(o);
        }
        // 迭代器
        Iterator i = collection.iterator();
        while (i.hasNext()) {
            System.out.println(i.next());
            i.remove();
        }

    }
}

i.remove()是删除迭代器当前指向的函数。不能直接使用colle

标签:java,迭代,框架,元素,接口,collection,集合
From: https://www.cnblogs.com/rpup/p/18223306

相关文章

  • Java 异常处理
    超详细:Java异常处理和最佳实践(含案例分析)https://mp.weixin.qq.com/s/7MbgphfBDBHWLx9nx5lHqA1.异常处理https://blog.csdn.net/lanuage/article/details/94303169 https://www.cnblogs.com/panshenlian/p/14095564.htmlhttps://www.cnblogs.com/fulfill/p/16046859.html......
  • 简单网页爬虫(java)
    一、绪论 1.功能通过用户输入的一个网址,该程序可以不重复地打印出这个网址中涉及到的一系列其他网址信息2.预备知识1.java的基础语法2.java文本IO及异常处理二、代码实现1.代码思路创建两个数组,一个数组存取已经访问过的网址,一个数组存取准备访问地网址,大概的思想和BF......
  • JavaScript实现跳转的方法
    在JavaScript中,实现页面跳转(即导航到另一个网页)有多种方法。以下是一些常见的方法及其示例代码:1.使用 window.location.href通过设置 window.location.href 属性,可以跳转到新的URL。javascriptwindow.location.href="https://www.example.com";2.使用 window.open......
  • Java容器集合
    简单示意图详细示意图ArrayList和LinkedList区别ArrayList(默认size为10)是实现了基于动态数组的数据结构,LinkedList基于双向链表的数据结构。对于随机访问get和set,ArrayList效率优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remo......
  • java单元测试:spring测试模块
    Spring测试模块为开发者提供了一套强大的工具,用于在Spring应用中进行单元测试、集成测试和端到端测试。1.测试框架集成Spring测试模块与多个测试框架集成,最常用的是JUnit5和TestNG。JUnit5集成使用@ExtendWith(SpringExtension.class)注解来启用Spring测......
  • 推荐一个小而全的 Java 工具类库,再也不用重复造轮子,简直太优雅(带私活源码)
    上周接到老大的需求说让整理下工具类,新项目要用,本想直接拿以前的改改直接用的,结果发现以前的工具类存在很多问题,光加解密工具类就重复写了很多个。赶紧跑去找有经验的同事商量对策,最终在Github上找到Hutool这款神器。简介Hutool是一个小而全的Java工具类库,通过静态......
  • DeerOJ的前端框架介绍-model文件夹
    model文件夹model文件夹下存储的是一些相关类的php文件,在HTML文件生成的时候,利用这些类能够高效地辅助文件与文件之间的调度转换。文件夹下的内容如下:这里列举一些重要的类文件:Route.php文件前文中在实现route.php的路由调度过程中有出现使用类Route的情况,实际上就是调用这......
  • DeerOJ的前端框架介绍-libs文件夹和controller文件夹
    libs文件夹在index.php文件初始化的过程中,需要提前准备好一些类和方法,这些类和方法的初始化是调用libs文件夹下的大多数php文件来实现的。libs文件夹下的文件如下:其中,uoj-lib.php文件是进行所有相关初始化的主文件,上级的index.php文件会直接调用该文件展开初始化的工......
  • DeerOJ的前端框架介绍-Web文件夹和App文件夹(route.php)
    Web文件夹下的结构DeerOJ的前端框架参考了部分Lavarel框架,做到兼顾代码的可维护性和可阅读性。具体的维护目录文件结构如下:注意到web文件夹下的index.php这是整个前端程序的main程序,当服务段收到请求后,根据.htaccess文件指定使用index.php文件来生成网页,并把网页数......
  • DeerOJ的前端框架介绍-config.php
    config.php文件config.php文件是PHP应用程序的配置文件,具体用于DeerOnlineJudge(DeerOJ)系统的设置。它定义了应用程序的基本信息、数据库连接、Web服务器设置、安全配置、邮件配置、评测机配置以及一些开关设置。基本信息(profile)部分参数解释如下:oj-name:在线......