集合概述

1.集合概述

  • 集合:集合是java中提供的一种容器,可以用来存储多个数据

集合和数组既然都是容器他们有什么区别?

  • 数组的长度是固定的。集合的长度是可变的

    int[] arr = new int[10]

    Student[] arr = new Student[3];

    ArrayList

  • 数组存储的是同一类型的元素可以存储基本数据类型值,而对象的类型可以不一致。再开发中一般当对象多的时候,使用集合进行存储

2.集合框架

javase提供了满足各种需求的API。了解器继承与接口的操作架构

最底层的集合

学习集合的目标:1.会使用集合存储数据,会遍历集合,掌握每种集合的特性

  • Vector集合

  • ArrayList集合

  • LinkedList集合

    -------------List接口------

    • 有序的集合(存储和去除元素顺序相同)
    • 允许存储重复的元素
    • 有索引,可以使用普通的for循环遍历
    • 继承:子类共性抽取,形成父类(接口)
  • TreeSet集合:无序的集合,存储和取出元素的顺序有可能不一致

  • HashSet集合:无序的集合,存储和取出元素的顺序有可能不一致

  • LinkedHashSet集合:有序的集合,存储和取出元素的顺序一致

    ------set接口------------

    • 不允许存储重复的元素

    • 没有索引(不能使用普通for循环遍历)

list和set的共同接口Collection接口

  • 定义的是所有单列集合中共性的方法
  • 所有的单列集合都可以使用共性的方法
  • 没有带索引的方法

集合框架的学习方式:

  • 学习顶层:学习顶层接口/抽象类中共性的方法,所有的子类都可以使用
  • 使用底层:底层不是接口就是抽象类,无法创建对象使用。需要使用底层创建对象使用

List集合

有索引,可以存储重复元素,可以保证存取顺序

ArrayList,重点

底层是数组实现的 查询快,增删慢

LinkedList 次之

底层是链表实现的,查询慢,增删快

Vector 了解

Set集合

无索引、不可以存储重复元素、存取无序

HashSet 中点

底层是哈希表+红黑树实现的,五索引、不可以存储重复元素、存取无需

LinkedHashSet 次之

底层是Hash表+链表实现的、五索引、不可以存储重复元素,可以保证存取顺序

TreeSet 了解

底层是二叉树实现。一般用于排序

Collection集合常用方法

单列集合

  • boolean add() 添加元素
  • boolean remove() 移除元素
  • boolean clear() 清空集合中的元素,但是不删除集合
  • boolean contains 判断是否包含某个元素
  • boolean isEmpty() 判断集合是否为空
  • int size() 获取集合的长度
  • Object[] toArray() 将集合转换为数组
public class test1{
    public static void main(String[] args){
        //创建顶层,使用底层 Collection为顶层,ArrayList为底层
        Collection<String> coll = new ArrayList<>();
        // boolean add方法
        coll.add("hello");
        coll.add("word");
        coll.add("heima");
        coll.add("java");    //[hello,word,heima,java]
        // boolean remove删除
        boolean result = coll.remove("hello");//[word,heima,java]
        //删除添加等方法都是boolean类型,删除或添加成功返回true,失败返回false
        // boolean clear
        coll.clear();
       	System.out.println(coll);//[]
        // boolean contain是否包含某个对象
        boolean result  = coll.contains("java")//true;
        
        
    }
}

Iterator迭代器

概述:collection集合元素通用的获取方式。再去元素之前要先判断集合中有没有元素,继续再判断,如果还有就再取出来。一直把集合中所有元素都取出来。该过程称之为迭代

  • hasNext()集合中还有没有下一个元素,有返回true,没有返回false

  • next()取出集合中的下一个元素

/**
*有两个常用方法
*hasNext
*next
*/
public class Demo01Iterator{
    Collection<String> = new ArrayList<>();
    //集合中添加元素
    coll.add("1");
    coll.add("2");
    coll.add("3");
    coll.add("4");
    coll.add("5");
    /*
    使用集合中的方法获取迭代器
    */
    Iterator<String> it = coll.iterator();
	boolean b = it.hasNext();
    String s = it.next();
}

Iterator是一个接口,我们无法直接使用

需要使用Iterator接口的实现类对象

获取实现类的方式比较特殊

迭代器的使用步骤

  • 使用集合中的芳芳iterator()获取是迭代器的实现类对象,使用Iterator接口接收(多态)
  • 使用Iterator接口中的方法hasNext判断还有没有下一个元素
  • 使用Iterator接口中的方法next取出集合中的下一个元素
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值