IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Collection集合和数组补充 -> 正文阅读

[Java知识库]Collection集合和数组补充

数组

数组和集合都是容器

数组定义完成并启动后,类型确定长度固定,在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或位移

数组适合的场景

当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采用定义数组存储

集合

集合是java中存储对象数据的一种容器

特点

  • 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定,集合更像气球
  • 集合非常适合做元素的增删操作

注意: 集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类

集合类体系结构

在这里插入图片描述

  • Collection单列集合,每个元素(数据)只包含一个值
  • Map双列集合,每个元素包含两个值(键值对)

在这里插入图片描述

Collection集合的特点

List系列集合:添加的元素是有序,可重复,有索引

  • ArrayList,LinkedList:有序,可重复,有索引
    Set系列集合:添加的元素是无序,不重复,无索引
  • HashMap:无序,不重复,无索引;LinkedHashSet:有序,不重复,无索引
  • TreeSet:按照大小默认升序排序,不重复,无索引

Collection API

Collection它的功能全部单例集合都能继承使用

  • add(E e) 把给定的对象添加到当前集合中
  • clear() 清空集合中所有的元素
  • remove(E e) 把给定的对象在当前集合中删除,只能删除第一个
  • contains(Object obj)判断当前集合中是否包含给定的对象
  • isEmpty()判断当前集合是否为空
  • size() 返回集合中元素的个数
  • toArray() 把集合的元素,存储到数组中
  • addAll() 把一个集合内容拷贝到另一个集合中
 public static void main(String[] args) {
        Collection<String> list1 = new ArrayList<>();
        Collection<String> list2 = new ArrayList<>();
        //添加
        list1.add("西瓜");
        list1.add("南瓜");
        System.out.println(list1);//[西瓜,南瓜]
        //清空
        //list1.clear();
        System.out.println(list1);//[]
        //删除指定
        //list1.remove("西瓜");//[南瓜]
        //断当前集合中是否包含给定的对象
        list1.contains("西瓜");//true
        //判断集合是否为空
        list1.isEmpty();//flase
        //集合长度
        list1.size();//2
        //集合存储到数组
        list1.toArray();
        //拷贝
        list2.add("白瓜");
        list1.addAll(list2);
        System.out.println(list1);//[南瓜,白瓜,西瓜]
    }

集合遍历

迭代器

iterator 迭代器得到的对象,默认指向当前集合的索引0
hasnext
next
建议用断点走一走
取元素越界会出现NoSuchElementException

 public static void main(String[] args) {
        Collection<String> list1 = new ArrayList<>();
        list1.add("西瓜");
        list1.add("西瓜");
        list1.add("西瓜");
        list1.add("西瓜");
        Iterator<String> iterator = list1.iterator();
        while (iterator.hasNext()){
            String it = iterator.next();
            System.out.println(it);
        }

    }

foreach遍历/增强for循环

  • 即可以遍历集合也可以遍历数组
  • 内部原理是一个Iterator迭代器,遍历集合相当于是迭代器的简化写法
  • 实现Iterable接口的类才可以使用迭代器和增强for,Collection接口已经实现了Iterable接口
    格式
for(元素数据类型 变量名 : 数组或者Collection集合){
	使用变量即可
}

Collection<String> list = new ArrayList<>();
for(String it : list){
	System.out.println(it);
}

Lambda表达式遍历集合

forEach

  public static void main(String[] args) {
        Collection<String> list1 = new ArrayList<>();
        list1.add("西瓜");
        list1.add("西瓜");
        list1.add("西瓜");
        list1.add("西瓜");
       list1.forEach(new Consumer<String>() {
           @Override
           public void accept(String s) {
               System.out.println(s);
           }
       });
       list1.forEach(s -> System.out.println(s));

    }
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 07:54:27  更:2022-05-08 07:57:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:19:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码