集合概述

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

集合和数组既然都是容器,它们有啥区别呢?

区别1:

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

区别2: 

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

学习集合的目标

  • 会使用集合存储数据
  • 会遍历集合,把数据取出来
  • 掌握每种集合的特性

学习集合的方式

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

集合框架

在使用JAVASE提供的API前,了解其继承与接口操作架构,才能知道何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection:定义了所有单列集合的共性方法。双列集合java.util.Map:定义了所有双列集合的共性方法。JDK中提供了丰富的集合类库,为了便于初学者进行系统地学习,接下来通过一张图来描述整个集合类的继承体系。

注意事项:

  • 上图橙色框里填写的都是接口类型,而蓝色框里填写的都是具体的实现类
  • 集合本身是一个工具,它存放在java.util包中。在 Collection 接口定义着单列集合框架中最最共性的内容。

单列集合的体系结构图

我们先看下图大概了解一下单列集合的结构体系,下面我们来详细学习

Collection 常用功能

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下
  • public boolean add(E e) : 把给定的对象添加到当前集合中 。
  • public void clear() :清空集合中所有的元素。
  • public boolean remove(E e) : 把给定的对象在当前集合中删除。
  • public boolean contains(E e) : 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty() : 判断当前集合是否为空。
  • public int size() : 返回集合中元素的个数。
  • public Object[] toArray() : 把集合中的元素,存储到数组中
代码举例
public class CollectionTest {
    public static void main(String[] args) {
        //多态:创建集合类对象
        Collection<String> collection = new ArrayList<>();
        //打印对象名称,得到的不是对象的内存地址值,ArrayList类重写了toString方法
        System.out.println(collection);//[]
        // public boolean add(E e):  把给定的对象添加到当前集合中 。返回值是一个boolean值,一般都返回true,所以可以不用接收
        collection.add("早餐");
        collection.add("中餐");
        collection.add("晚餐");
        collection.add("夜宵");
        System.out.println(collection);//[早餐, 中餐, 晚餐, 夜宵]
        /*
            public boolean remove(E e): 把给定的对象在当前集合中删除。
            返回值是一个boolean值,集合中存在元素,删除元素,返回true
                                集合中不存在元素,删除失败,返回false
         */
        System.out.println(collection.remove("夜宵"));//true
        System.out.println(collection.remove("元宵"));//false
         /*
            public boolean contains(E e): 判断当前集合中是否包含给定的对象。
            包含返回true
            不包含返回false
         */
        System.out.println(collection.contains("夜宵"));//false
        System.out.println(collection.contains("早餐"));//true
        //public int size(): 返回集合中元素的个数。
        System.out.println(+collection.size());//3
        //public Object[] toArray(): 把集合中的元素,存储到数组中。
        Object[] objects = collection.toArray();
        //遍历数组
        for (int i = 0; i < objects.length; i++) {
            System.out.print(objects[i] + " ");//早餐 中餐 晚餐
        }
        System.out.println("   ");
        //public boolean isEmpty(): 判断当前集合是否为空。 集合为空返回true,集合不为空返回false
        System.out.println(collection.isEmpty());//false
        //public void clear() :清空集合中所有的元素。但是不删除集合,集合还存在
        collection.clear();
        //再次查看集合中元素的个数和元素是否为空
        System.out.println(collection.size());
        System.out.println(collection.isEmpty());//true

    }

}

Java之Collection接口(单列集合根接口)的更多相关文章

  1. Java中的集合(二)单列集合顶层接口------Collection接口

    Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...

  2. Java第二十天,Map集合(接口)

    Map接口 一.定义 Map集合是双列集合,即一个元素包含两个值(一个key,一个value),Collection集合是单列集合. 定义格式: public interface Map<K,V ...

  3. Java从零开始学二十三(集合Map接口)

    一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...

  4. Java从零开始学二十一(集合List接口)

    一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collecti ...

  5. 29.1 collection层次结构 中的根接口

    /* * Collection * boolean add(E e) * void clear() * boolean contains(Object o) * boolean isEmpty() * ...

  6. Java集合类根接口:Collection 和 Map

    前言 在前文中我们了解了几种常见的数据结构,这些数据结构有着各自的应用场景,并且被广泛的应用于编程语言中,其中,Java中的集合类就是基于这些数据结构为基础. Java的集合类是一些非常实用的工具类, ...

  7. Java容器---Collection接口中的共有方法

    1.Collection 接口 (1)Collection的超级接口是Iterable (2)Collection常用的子对象有:Map.List.Set.Queue. 右图中实现黑框的ArrayLi ...

  8. Java Collection、Map集合总结

    1.Java中的Collection集合总结 Collection |---List(存储有序,可重复) |---ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全.效率高 |--- ...

  9. java 单列集合总结

    Collection 接口 add() remove() contains() clear(); size(); 迭代器遍历(普通迭代器,不能再遍历过程中修改集合的长度) List接口 单列集合 有序 ...

随机推荐

  1. Day 09 作业

    简述定义函数的三种方式 有参函数, 无参函数, 空函数 简述函数的返回值 函数内部代码经过一系列的逻辑处理返回的结果 简述函数的参数 函数的参数分形参和实参 形参: 定义函数阶段, 括号内定义的参数, ...

  2. Startup/OWIN框架

    为什么写OWIN框架呢? 因为没接触刀OWIN框架直接去学.NET Core比较生硬,个人见解.首先我们要知道OWIN的由来:ASP.NET和IIS和Windows操作系统的关系在之前是紧密联系的,缺 ...

  3. 【VUE】使用问题记录

    [VUE]使用问题记录 ===================================================================== 1.Vue.nextTick 修改数 ...

  4. OPPO R11刷机初体验

    刷机目的 最初打算是用旧手机搭一个服务器,首先想到的是刷一个Linux系统,但这太难了,我搞不定,然后就想着可以用一些软件比如KSWEB之类的来代替,但是想要访问80端口的话还是需要root,但是普通 ...

  5. JavaEE基础(06):Servlet整合C3P0数据库连接池

    本文源码:GitHub·点这里 || GitEE·点这里 一.C3P0连接池 1.C3P0简介 C3P0是一个开源的JDBC连接池,应用程序根据C3P0配置来初始化数据库连接,可以自动回收空闲连接的功 ...

  6. 图片验证码推导逻辑,Image.new,ImageDraw, ImageFont.truetype的用法

    #一, 创建图片并在图上添加文本 from PIL import Image,ImageDraw,ImageFont a = '我们不一样' # 定义文本 font = ImageFont.truet ...

  7. 《Java基础知识》Java变量的声明、初始化和作用域

    一.Java变量的声明 在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式. double salary; ...

  8. Ubuntu找不到stdio.h等头文件_安装c库_build-essential安装失败解决

    最近安装的Ubuntu1804系统,vim.gcc都是现安的,用gcc编译时出现找不到头文件情况: 于是百度. 原来linux类的操作系统上面开发程序,光有了gcc 是不行的,它还需要一个 build ...

  9. [译]C# 7系列,Part 1: Value Tuples 值元组

    Mark Zhou写了很不错的一系列介绍C# 7的文章,虽然是2年多年前发布的,不过对于不熟悉C# 7特性的同学来说,仍然有很高的阅读价值. 原文:https://blogs.msdn.microso ...

  10. 【译】gRPC vs HTTP APIs

    本文翻译自 ASP.NET Blog | gRPC vs HTTP APIs,作者 James,译者 Edison Zhou. 写在开头 现在,ASP.NET Core使开发人员可以构建gRPC服务. ...