一、集合类概述:

  1.为什么出现集合类?

    面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。

  2.数组和集合类同是容器,有何不同?

     数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。

  3.集合类的特点

     集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

二、集合的继承体系图解:

  

三、学习集合体系,首先我们先学习他们的“老大”:Collection,查询它的API文档。

  1.Collection 位于java.util包下,而且是一个接口?!且文档中写到:JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 SetList)实现。即并没有实现类,而是靠子接口去实现类。

  2.Collection:是集合的顶层接口,它的子体系有重复的,有唯一的,有有序的,有无序的。(后面会慢慢的讲解)

  3. Collection的功能概述:

    * 1:添加功能
    * boolean add(Object obj):添加一个元素
    * boolean addAll(Collection c):添加一个集合的元素
    * 2:删除功能
    * void clear():移除所有元素
    * boolean remove(Object o):移除一个元素
    * boolean removeAll(Collection c):移除一个集合的元素(是一个还是所有)
    * 3:判断功能
    * boolean contains(Object o):判断集合中是否包含指定的元素
    * boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有)
    * boolean isEmpty():判断集合是否为空
    * 4:获取功能
    * Iterator<E> iterator()(重点)
    * 5:长度功能
    * int size():元素的个数
    * 面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?
    * 6:交集功能
    * boolean retainAll(Collection c):两个集合都有的元素?思考元素去哪了,返回的boolean又是什么意思呢?
    * 7:把集合转换为数组
    * Object[] toArray()
    */

  4.基本功能测试

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

 public class CollectionDemo {
     public static void main(String[] args) {
         // 测试不带All的方法

         // 创建集合对象
         // Collection c = new Collection(); //错误,因为接口不能实例化,由于是并无实现类的顶级接口。我们得找他的子接口,以子接口List的实现类ArrayList为例。
         Collection c = new ArrayList();//正确

         // boolean add(Object obj):添加一个元素
         // System.out.println("add:"+c.add("hello"));
         c.add("hello");
         c.add("world");
         c.add("java");

         // void clear():移除所有元素
         // c.clear();

         // boolean remove(Object o):移除一个元素
         // System.out.println("remove:" + c.remove("hello"));
         // System.out.println("remove:" + c.remove("javaee"));

         // boolean contains(Object o):判断集合中是否包含指定的元素
         // System.out.println("contains:"+c.contains("hello"));
         // System.out.println("contains:"+c.contains("android"));

         // boolean isEmpty():判断集合是否为空
         // System.out.println("isEmpty:"+c.isEmpty());

         //int size():元素的个数
         System.out.println("size:"+c.size());

         System.out.println("c:" + c);
     }
 }

  *另外根据ArrayList的add方法的源码发现始终返回true,可发现这是个可重复集合类。

  *直接打印ArrayList对象,会显示出他集合内的元素,可发现,它重写了toString方法。

  *c1.removeAll(c2)  只要c2的一个元素被移除了,就返回true

  *c1.containsAll(c2) 得包含c2所有

  *c1.retainAll(c2):

    c1,c2两集合,c1,c2做交集,最终交集保存在调用者c1内,返回值是c1是否改变过,改变过则为true 否则false

    

java_SE(Day15)_集合1的更多相关文章

  1. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  2. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  3. luogg_java学习_09_泛型_集合

    这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 泛型 泛型介绍 1).类内部的属性的类型可以由外部决定: 2) ...

  4. 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)

    上周内容回顾 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象 ...

  5. Python基础-列表_元组_字典_集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  6. C#代码示例_集合

    C#中数组实现为System.Array类得实例,它们只是集合类(Collection Classes)中的一种类型. 索引符(indexer)是一种特殊类型的属性,可以把它添加到一个类中,以提供类似 ...

  7. 黑马程序员:Java编程_集合

    =========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象 ...

  8. 6.JAVA_SE复习(集合)

    集合 结构图: 总结: 1.集合中的元素都是对象(注意不是基本数据类型),基本数据类型要放入集合需要装箱. 2.set与list的主要区别在于set中不允许重复,而list(序列)中可以有重复对象. ...

  9. JavaSE学习总结第15天_集合框架1

      15.01 对象数组的概述和使用 public class Student { // 成员变量 private String name; private int age; // 构造方法 publ ...

随机推荐

  1. 2014优秀的好用的20款免费jQuery插件推荐

    2013 年最好的 20 款免费 jQuery 插件,世界买家网 www.buyerinfo.biz在这里分享给大家 这些插件对设计者和开发者都有很大的帮助,希望大家能够喜欢:) 现 今互联网市场上提 ...

  2. Android深度探索--HAL与驱动开发----第八章读书笔记

    通过蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,可以打开和关闭蜂鸣器. PWM驱动的实现方式不同于LED驱动, PWM 驱动将由多个文件组成.这也是大多数 Linux 驱动的标准实现方式. 刚开始是L ...

  3. 第一个structs+spring+hibernate的web程序

    1. 数据库: Column Type Comment id int(11) Auto Increment   name varchar(50) NULL   url varchar(255) NUL ...

  4. 如何用极路由+OpenWrt+SDR电视棒搭建SDR服务器

    0×00 前言 近期因为有个从异地捕获无线信号的需求,便尝试着用OpenWrt+公网IP搭建了一台SDR服务器.如果有小伙伴嫌SDR硬件天线看起来太乱.或者电脑没有足够的USB接口也可在局域网搭建SD ...

  5. 【转】C#多线程示例

    using System; using System.Threading; namespace ConsoleThread { class ThreadApp { static int interva ...

  6. windows核心编程---第九章 同步设备IO与异步设备IO之同步IO

    同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...

  7. oracle xmltype导入并解析Excel数据 (二)规则说明

    规则表字段说明如下: 其中RULE_FUNC_CUSTOMIZE表示,用户自己写函数,去判断数据是否合法,存储的是函数的名字 此函数的参数只有一个,该列的值,字段类型是Varchar2, 校验失败的话 ...

  8. HDU 5113 dfs剪枝

    题意:告诉格子规格,颜色个数,以及每个颜色能涂得格子数目,问是否能够实现相邻两个格子的颜色数目不相同. 分析:因为数据很小,格子最多是5 * 5大小的,因此可以dfs.TLE了一次之后开始剪枝,31m ...

  9. 设置ubuntu 下git 的用户名和邮箱

    设置ubuntu 下git 的用户名和邮箱 摘自  慢慢修远路,上下求索心http://yanshaozhi.iteye.com/blog/386752 虽然我没看怎么明白 但我用第一总方法就设置好了 ...

  10. Entity Framework search sequnce

    sql express, then (LocalDb)\v11.0 (LocalDb)\mssqllocaldb sqllocaldb i  could list all the local db i ...