【Java】Collection集合和泛型

学习目标:会存取,掌握特性
学习方式:学习顶层接口/抽象类的共性方法,使用底层的子类创建对象使用

1 集合框架

集合类的继承体系:
Collection接口:
·············1) List接口:有序、允许重复、有索引
··························1.1) ArrayList集合【重点】
··························1.2) Vector集合【了解】
··························1.3) LinkedList集合【熟悉】
·············2) Set接口:不重复、无索引
··························2.1) TreeSet集合:无序(存取顺序可能不一致)【了解】
··························2.2) HashSet集合:无序【重点】
·······································2.2.1) LinkedHashSet集合:无序【熟悉】

集合 特点
List 有索引,可以存储重复元素,可以保证存取顺序
ArrayList 底层是数组实现的,查询快,增删慢
LinkedList 底层是链表实现的,查询慢,增删快
Set 无索引,不可以存储重复元素,存取无序
HashSet 底层是哈希表+红黑树实现,无索引,不可以存重复元素,存取无序
LinkedHashSet 底层是哈希表+链表实现,无索引,不可以存重复元素,可以保证存取顺序
TreeSet 底层是二叉树实现,一般用于排序

2 Collection集合常用功能

Collection是单列结合最顶层的接口,定义了单列集合共性方法,任意单列集合都可以使用
java.util.Collection:1. add(e); 2. remove(e); 3. inEmpty(); 4. clear(); 5. contains(e); 6. toArray(); 7. size()

public static void main(String[] args) {
   
        Collection<String> coll = new ArrayList<>();
        //add添加元素
        coll.add("a");
        coll.add("b");
        coll.add("c");
        System.out.println(coll);//[a,b,c]

        //remove删除元素
        boolean result = coll.remove("a");
        System.out.println(result);//删除结果:true
        System.out.println(coll);//[b,c]

        //clear清空集合
        coll.clear();
        System.out.println(coll);

        //contains是否包含
        coll.add("b");
        boolean result2 = coll.contains("a");
        System.out.println(result2);//flase
        boolean result3 = coll.contains("b");
        System.out.println(result3);//true

        //isEmpty判断集合是否为空
        System.out.println(coll.isEmpty());//false

        //size获取集合长度
        System.out.println(coll.size());//1

        //toArray集合--->数组 遍历集合元素
        Object[] arr = coll.toArray();
        for (int i = 0; i < arr.length; i++) {
   
            System.out.println(arr[i]);//打印Object对象 因为重写了toString 所以显示的是值而不是地址
        }
}

3 Iterator迭代器

常用方法:1. hasNext()、2. next()
Iterator迭代器是一个接口,无法直接使用,需要使用Iterator接口的实现类对象
Collection中有一个iterator()方法,返回的是迭代器的实现类对象,list和set 通用,无需索引。
【重点】使用方式

  1. 使用iterator()方法获取实现类对象,使用Iterator接口接收(多态)
  2. 使用hasNext判断是否还有下一个
  3. 使用next取出下一个元素

实现原理:iterator()获取迭代器的实现类对象,会把指针(索引)指向集合-1索引处。hasNext()判断是否有下一个。next取出一个元素后,会把指针向后移动一位。

实现示例

public static void main(String[] args) {
   
        Collection<String> coll = new ArrayList<>();
        coll.add("a");
        coll.add("b");
        coll.add("c");
        coll.add("d");
        coll.add("e");
        //迭代器有泛型 跟着集合走
        //多态    接口          实现类对象
        Iterator<String> it = coll.iterator();
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值