学习java第14天

本文详细介绍了Java中的数组与集合的区别,强调集合的动态性与灵活性,适合数据增删操作。讨论了集合的泛型、迭代器、增强for循环以及不同集合体系,如List和Set的特点。此外,还探讨了数据结构的基础概念,包括栈、队列、数组、链表和二叉树,以及ArrayList和LinkedList的底层实现原理。最后,深入分析了泛型的用途和优势,包括泛型类和泛型方法的定义及应用。
摘要由CSDN通过智能技术生成

集合和数组都是容器

数组定义完成并启动后,类型确定,长度固定

在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位

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

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

集合的大小不固定,启动后可以动态变化,类型也可以选择不固定,集合更像气球

集合非常适合做元素的增删操作

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

数组和集合的元素存储的个数问题

数组定义后类型确定,长度固定

集合类型可以不固定,大小是可变的

数组和集合存储元素的类型问题

数组可以存储基本类型和引用类型的数据

集合只能存储引用数据类型的数据

数组和集合适合的场景

数组适合做数据个数和类型确定的场景

集合适合做数据个数不确定,且要做增删元素的场景

注意:前期先掌握Collection集合体系的使用

Collection集合特点

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

ArryList、LinekdList:有序,可重复,有索引

Set系列集合:添加的元素是无需,不重复,无索引

HashSet:无序,不重复,无索引:LinkedHashSet:有序、不重复、五索引

TreeSet:按照大小默认升序排序,不重复,无索引

package com.itheima.d1_collection;

import java.util.ArrayList;
import java.util.Collection;

public class CollectionDemo1 {
    public static void main(String[] args) {
        //有序 可重复 有索引
        Collection list=new ArrayList();
        list.add("Java");
        list.add("Java");
        list.add("Mybatis");
        list.add(23);
        list.add(23);
        System.out.println(list);
    }
}
集合的代表是?

Collection接口

Collection集合分了哪2大常用的集合体系?

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

Set系列集合:添加的元素是无需、不重复、无索引

如何约定集合存储数据的类型,需要注意什么?

集合支持泛型

集合和泛型不支持基本类型,只支持引用数据类型

Collection集合常用API

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的

Collection  API如下:

package com.itheima.d1_collection;

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

public class CollectionDemo {
    public static void main(String[] args) {
        //HashSet:添加的元素时无需,不重复,无索引
        Collection<String> list=new ArrayList<>();
        //1.添加元素,添加成功返回true
        list.add("Java");
        list.add("HTML");
        list.add("HTML");
        System.out.println(list.add("黑马"));
        System.out.println(list);
        //2.清空集合的元素
        //list.clear();
        //System.out.println(list);
         //3.判断集合是否为空,是空返回true
        System.out.println(list.isEmpty());
        //4.获取集合的大小
        System.out.println(list.size());
        //5.判断集合中是否包含某个元素
        System.out.println(list.contains("Java"));
        System.out.println(list.contains("黑"));
        //6.删除某个元素:如果有多个重复元素默认删除前面的第一个
        list.remove("Java");
        System.out.println(list);
        //7.把集合转换成数据[Java,独孤求败,HTML,Mybatis]
        Object[] arrs=list.toArray();
        System.out.println("数组:"+ Arrays.toString(arrs));
        System.out.println("----------拓展--------");
        Collection<String> c1=new ArrayList<>();
        c1.add("Java");
        c1.add("java1");
        Collection<String> c2=new ArrayList<>();
        c2.add("赵敏");
        c2.add("殷素素");
        c1.addAll(c2);
        System.out.println(c1);
    }
}

 Collection迭代器遍历集合:

遍历就是一个一个的把容器中的元素访问一遍

迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式

Collection集合获取迭代器

Iterator<E> iterator()    返回集合中的迭代器对象,该迭代器对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值