Java集合基础知识

集合

什么是集合
集合的英文名称是Collection,
是用来存放对象的数据结构,而且长度可变,其实集合就相当于一个容器,我们想存很多个数据;
集合与数组的区别

集合的特点

第一点
首先集合和数组相同之处都是存放数据,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的,
第二点
而数组的访问方式比较单一,插入/删除等操作比较繁琐,而集合的访问方式比较灵活,主要是因为数组只能通过下标取想要的数据,但是集合去有很多个方法

在这里插入图片描述

Collection接口层次结构 中的根接口,接口不能直接使用,但是该接口提供了添加元素/删除元素/管理元素的父接口公共方法.
由于List接口与Set接口都继承了Collection接口,因此这些方法对于List集合和Set集合是通用的.

请添加图片描述

arraylist

ArrayList子类数据有下标,有序,可重复
内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
查询快,增删慢;
请添加图片描述

查询快,增删慢
原理:

请添加图片描述

第一步
请添加图片描述

第二步

请添加图片描述

第三步

请添加图片描述

内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
在这里插入图片描述

第一次扩容10,以后每次都扩容原容量的1.5倍,扩容通过位运算右移动1位。

请添加图片描述

linklist

LinkedList子类底层是链表
增删快,查询慢
请添加图片描述

Collection方法速查表

方法方法描述
add将指定的对象添加到集合中
isEmpty()判断当前集合是否为空
size返回此集合的元素数
contails()判断集合是否包含指定的元素
package com.biyi;

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

//本类用来测试collection接口
public class Aspct {

    public static void main(String[] args) {
        //创建collection接口相关对象

        //Collection collection=new Collection();//在这个地方为什么回报错;因为接口不能实例化
            //在collection里面什么类型都可以存储,所以在这里需要添加范型
             //那么我们想要在这里存储一个类型的数据,但是在范型里面不能使用基本类型,必须要用到引用类型
             /*
             * <Integer>在这里是范型用来约束集合中的元素类型,但是这里的范型只能写引用类型,不能写基本类型
             *
             * */
              Collection<Integer> collection=new ArrayList<>();



             //测试常用的方法
        collection.add(100);//因为我们在new arrlist的时候约束了integer类型,所以,在这里我们只能存储integer类型的数据
        collection.add(200);
        collection.add(300);
        collection.add(400);
        System.out.println(collection);

        //collection.clear();//【】清空集合中的元素
       // System.out.println(collection);  我们在这里注释掉不然的话就一直会有一个空集合
        System.out.println(collection.contains(200));//这个方法是是否包含集合中的元素,在这里返回的是boolean的true
        System.out.println(collection.hashCode());//这个方法是返回对应的集合的hash值
        System.out.println(collection.isEmpty());//判断这个集合是否为空
        System.out.println(collection.remove(100));//在这里要注意这个是移除,返回值的结果是boolean类型

        System.out.println(collection);//如果我们细数那个运送看一下这个集合的元素是否被移除那么我们可以打印一下

        System.out.println(collection.size());//获取集合中的个数,类似与集合的大小
        System.out.println(collection.equals(200));//判断集合与200是否相等
        System.out.println(collection.toArray());

        System.out.println(Arrays.toString(collection.toArray()));//需要将集合转换为数组那么就需要arrays

        //System.out.println();这个代码只是讲数据打印到了控制台上,但是我们如何真正取到里面的数据

        /*
        * 迭代器
        * 1,首先是获取集合的迭代器,
        * 2,判断集合是否有下个元素  it.hashnext
        * 3,获取当前迭代到的元素next
        *
        * */


        Iterator<Integer> it = collection.iterator();//获取集合的迭代器

         while (it.hasNext()){//这是一个boolean类型的返回值

             Integer num = it.next();

             System.out.println(num);

         }
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java集合Java编程中非常重要的一部分,它提供了一种方便的方式来处理一组对象。Java集合框架包括List、Set、Map等接口和实现它们的类。下面是Java集合基础知识的介绍: 1. List接口:List是一个有序的集合,它可以包含重复的元素。List接口的常用实现类有ArrayList和LinkedList。其中,ArrayList是一个动态数组,它可以自动扩容以容纳更多的元素;而LinkedList是一个双向链表,它可以快速地在列表中插入或删除元素。 2. Set接口:Set是一个不允许重复元素的集合。Set接口的常用实现类有HashSet和TreeSet。其中,HashSet是一个基于哈希表的实现,它可以快速地查找元素;而TreeSet是一个基于红黑树的实现,它可以对元素进行排序。 3. Map接口:Map是一个键值对的集合,它允许使用键来查找值。Map接口的常用实现类有HashMap和TreeMap。其中,HashMap是一个基于哈希表的实现,它可以快速地查找键值对;而TreeMap是一个基于红黑树的实现,它可以对键进行排序。 下面是一个示例代码,演示了如何使用ArrayList集合存储学生的成绩,并遍历这个集合: ```java // 创建一个ArrayList集合,向这个集合中存入学生的成绩 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(78); al.add(67); // 对集合遍历 // 方式1 for (Object obj : al) { System.out.println(obj);} // 方式2 for (Integer i : al) { System.out.println(i); } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值