Java中的collection集合概述

集合的概述

Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合,这些集合类都位于java.util包中,但是与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的引用。
Java集合主要分为以下三种类型:

  • Set(集):集合中的对象不按特定方式排序,且没有重复对象。它的有些实现类能对集合中的对象按照特地方式排序。
  • List(列表):集合中的对象按照索引位置排序,可以有重复对象,允许使用索引检索对象。
  • Map(映射):集合中的每一个元素都包含一对键对象和值对象(key-value),集合中的键对象是不能重复的,它的一些实现类能对集合中的键对象进行排序。
  • collection集合的继承关系图:
    在这里插入图片描述
数组和集合的区别
  1. 长度区别:
    数组的长度是固定的而集合的长度是可变的
  2. 存储数据类型的区别:
    数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型
  3. 内容区别:
    数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素
集合功能的简述
  1. 添加功能
  • boolean add(Object obj):添加一个元素
  • boolean addAll(Collection c):添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
  1. 删除功能
  • void clear():移除所有元素
  • boolean remove(Object o):移除一个元素
  • boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素
    如果没有交集元素 则删除失败 返回false
  1. 判断功能
  • boolean contains(Object o):判断集合中是否包含指定的元素
  • boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
    比如:1,2,3 containsAll 1,2=true 1,2,3 containsAll 2,3,4=false
  • boolean isEmpty():判断集合是否为空
  1. 长度功能
    - int size():元素的个数
  2. 获取功能
  • Iterator iterator()
集合的遍历

1.使用迭代器遍历

public static void main(String[] args) {
    Collection collection = new ArrayList();
    //集合只能存引用数据类型
    collection.add(10);
    collection.add(Integer.valueOf(100));
    collection.add(30);
    collection.add(40);
    collection.add(50);
    collection.add(60);

    //遍历集合中的元素
    //获取一个迭代器
    // 对 collection 进行迭代的迭代器
    // boolean hasNext ()
    // 如果仍有元素可以迭代,则返回 true。
    // E next ()
    // 返回迭代的下一个元素。
    // void remove ()
    // 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
    Iterator iterator = collection.iterator();
   // System.out.println(iterator);

    // ArrayList$Itr  Itr 是一个内部类实现了迭代器
    Object next1 = iterator.next();//让迭代器下移
    System.out.println("--------------------");
    while (iterator.hasNext()) {
        Object next = iterator.next();
        System.out.println(next);
    }
}

2.将集合转化为数组进行遍历

public static void main(String[] args) {
    Collection aList = new ArrayList();
    aList.add(1);
    aList.add(15);
    aList.add(16);
    aList.add(14);
    aList.add(17);
    aList.add(188);
    aList.add(1111);
    aList.add(1544);
    aList.add(1111);
    aList.add(1544);

    创建一个数组
    //Integer[] arr = new Integer[aList.size()];
    //int index = 0;
    //Iterator iterator = aList.iterator();
    //while (iterator.hasNext()) {
    //    Object obj = iterator.next();
    //    Integer integer = (Integer) obj;
    //    arr[index] = integer;
    //    index++;
    //}
    //
    //System.out.println(Arrays.toString(arr));

    //将一个集合转换成数组
    Object[] objects = aList.toArray();

    for (int i = 0; i < objects.length; i++) {
        Integer num= (Integer) objects[i];
        System.out.println(num);
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值