集合的总结

集合

1.集合概述

1.1 集合是什么

  1. 集合是一种容器,可以容纳其它类型的数据,数组也是一种集合
  2. 集合在开发中用的比较多

1.2 集合存储的数据

  1. 集合只能存储引用类型数据
  2. 内存图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7100lLKt-1622043685981)(/Users/mac/Library/Containers/com.tencent.qq/Data/Library/Caches/Images/812D9EF66D0F7F3252170FE06947D243.png)]

1.3 集合的数据结构

  1. 使用不同的集合等同于使用不同的数据结构
  2. 不同的集合使用的数据结构不同
  • new ArriList() 创建一个底层是数组的集合
  • new LinkedList() 创建一个底层是链表的集合

1.4 集合的包和接口

  1. 集合的包和接口都在java.util下

1.5 集合的继承结构图

  1. 一定要背会

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQY3vFZA-1622043685983)(/Users/mac/Library/Containers/com.tencent.qq/Data/Library/Caches/Images/8351C62DF8BF6FAD0EA7A888113DC439.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o3zT579I-1622043685984)(/Users/mac/Library/Containers/com.tencent.qq/Data/Library/Caches/Images/D84598CB62717EE783F76162E215E16D.jpg)]

1.6 两大类集合

  1. 单个方式存储 超级父接口:java.util.Collection
  2. 键值对的方式存储 超级父接口: java.util.Map

2.Collection接口中常用方法

2.1 Collection接口中存放的元素

  • Collection接口中在没有使用泛型之前,可以存放Object的所有子类
  • 使用泛型后只能存储某一种特定的类型

2.2 Collection接口中的常用方法

  1. add()方法
  2. clear()方法
  3. size()方法
  4. contains()方法
  5. remove()方法
  6. isEmpty()方法
  7. toArray()方法
import java.util.ArrayList;
import java.util.Collection;

public class Main {
   
    public static void main(String[] args) {
   
        Collection c=new ArrayList();//创建一个ArrayList对象(多态),接口无法实例化
        c.add(1000);//添加一个Integer类型的引用,自动装箱
        c.add(3.14);//添加一个Float类型的引用,自动装箱
        c.add(true);//添加一个Boolean类型引用,自动装箱
        c.add(new Object());//添加一个Object类型引用

        System.out.println("集合中的元素个数: "+c.size());//4

        c.clear();
        System.out.println("集合中的元素个数: "+c.size());//0

        c.add("hello");
        c.add("world");
        c.add("123");

        boolean flag=c.contains("hello");
        System.out.println(flag);//true
        System.out.println("456");//false

        System.out.println("集合中的元素个数: "+c.size());//3
        c.remove("123");
        System.out.println("集合中的元素个数: "+c.size());//2

        c.clear();
        System.out.println(c.isEmpty());//true

        c.add("hello");
        c.add("world");
        c.add("123");
        c.add(new Object());

        Object[] a=c.toArray();
        for (int i = 0; i < a.length; i++) {
   
            System.out.println(a[i]);
        }
    }
}

2.3 Collection接口中的Iterator

  • 获取迭代器相当于获取了当前集合的一张快照
  • 每次按照快照来进行迭代
  • 迭代的时候会将快照和原先的集合进行比对,如果有差别(原集合结构改变),会报错
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

class Main{
   
    public static void main(String[] args) {
   
        Collection c=new ArrayList();//有序可重复
        c.add("123");
        c.add("456");
        c.add("789");

        Iterator it=c.iterator();
        //it一开始指向第一个元素的前一个位置
        while(it.hasNext()){
   //判断有没有下一个元素,有返回true
            System.out.println(it.next());//移向下一个并返回该元素的地址
        }

        Collection c1=new HashSet();//无序不重复
        System.out.println();
        c1.add(100);
        c1.add(200);
        c1.add(546);
        c1.add(100);
        c1.add(825);
        Iterator it1=c1.iterator();
        while(it1.hasNext()){
   
            System.out.println(it1.next());
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jm7hWEc3-1622043685985)(/Users/mac/Library/Containers/com.tencent.qq/Data/Library/Caches/Images/E5C80BB5021D5FAE863DA18694F0B5BC.png)]

import java.util.ArrayList;
import java.util.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值