Java进阶:【集合】认识集合了解简单语法 迭代器原理分析

x33g5p2x  于2021-11-27 转载在 Java  
字(2.4k)|赞(0)|评价(0)|浏览(473)

集合前言

数组,集合都是对多个数据进行存储操作,简称为容器

PS:这里的存储是内存层面的存储,而不是持久化存储

数组:只能存放同一种类型的数据

,长度无法更改,只能放同一种类型的数据

一旦指定了长度,那么长度就被确定,不可以更改,删除增加效率低,无法直接判断数组的实际元素的数量,需要我们自己去写,存储为有序,可重复。

如何解决数组的缺点?

用于解决数组缺点的新的存数的数据结构—>集合

什么是集合

我们有很多集合,为什么要学习这么多集合,应为不容的集合底层的数据机构不一样

将集合分为两种类型

存储方式:

一个一个数据的存储

一对一对数据的存数

colletion接口

特点:不唯一,有序

  • 新增:add(E e)
  • 修改:
  • 删除:remove(Object o),clear()
  • 查看:iterator(),size()
  • 判断:contains(Object o),equals(Object o),isEmpty()
/* * 新增:add(E e) * 修改: * 删除:remove(Object o),clear() * 查看:iterator(),size() * 判断:contains(Object o),equals(Object o),isEmpty() * */

    public static void main(String[] args) {
        //接口不能创建对象:利用实现类创建
        Collection col = new ArrayList();
// 集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
// 基本数据类型自动装箱,对应包装类
        col.add(18);
        col.add(12);
        col.add(15);
        System.out.println(col);
        List list = Arrays.asList(new Integer[]{2,1,3,4,5});
        col.addAll(list);
        System.out.println(col);
        col.clear();
        System.out.println(col);
        System.out.println("集合的数量:"+col.size());
        System.out.println("集合是否为空:"+col.isEmpty());
        boolean remove = col.remove(15);
        System.out.println(col);
        System.out.println("是否删除成功:"+remove);

        Collection col2 = new ArrayList();
// 集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
// 基本数据类型自动装箱,对应包装类
        col2.add(18);
        col2.add(12);
        col2.add(15);

        Collection col3 = new ArrayList();
// 集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
// 基本数据类型自动装箱,对应包装类
        col3.add(18);
        col3.add(12);
        col3.add(15);
        System.out.println(col2.equals(col3));

集合有一个特点,只能存放引用数据类型,不能是基本数据类型,那我们为什么加入基本类型没有报错?
解:基本数据类型自动装箱,对应包装类

遍历的两种方式

  1. ​ 增强for循环
for (Object o : col) {
            System.out.println(o);
        }
  1. ​ 迭代器
Iterator it = col.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

迭代器简略原理:

list接口

list接口常用方法:

list接口的常用方法

  • 增加:add(E e),
  • 删除:clear(),remove(int index), remove(Object o)
  • 修改:set(int index, E element)
  • 查看:get(int index),size()
  • 判断:
List list = new ArrayList();
        list.add(12);
        list.add(5);
        list.add(-1);
        list.add(19);
        list.add(2);
        list.add("abc");
        System.out.println(list);
        list.add(3,14);
        System.out.println(list);
        list.set(3,77);
        System.out.println(list);
        list.remove(2); //调用这个方法参数为integer的时候,调用的是参数为index的remove方法,按照喜爱表删除
        System.out.println(list);
        list.remove("abc");
        System.out.println(list);

        Object o = list.get(0);
        System.out.println(o);
        System.out.println("-----------");
// 遍历list集合,普通for循环
        for (int i = 0; i <list.size(); i++) {
            System.out.print( list.get(i));
        }
        System.out.println("\n-----------");
        for (Object o1 : list) {
            System.out.print(o1);
        }
        System.out.println("\n-----------");
       Iterator it = list.iterator();
       while (it.hasNext()){
           System.out.print(it.next());
       }
    }

以上就是常用方法外加迭代的是那种遍历方式

相关文章