zoukankan      html  css  js  c++  java
  • java_SE(Day15)_集合1

    一、集合类概述:

      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.基本功能测试

     1 import java.util.ArrayList;
     2 import java.util.Collection;
     3 
     4 public class CollectionDemo {
     5     public static void main(String[] args) {
     6         // 测试不带All的方法
     7 
     8         // 创建集合对象
     9         // Collection c = new Collection(); //错误,因为接口不能实例化,由于是并无实现类的顶级接口。我们得找他的子接口,以子接口List的实现类ArrayList为例。
    10         Collection c = new ArrayList();//正确
    11 
    12         // boolean add(Object obj):添加一个元素
    13         // System.out.println("add:"+c.add("hello"));
    14         c.add("hello");
    15         c.add("world");
    16         c.add("java");
    17 
    18         // void clear():移除所有元素
    19         // c.clear();
    20 
    21         // boolean remove(Object o):移除一个元素
    22         // System.out.println("remove:" + c.remove("hello"));
    23         // System.out.println("remove:" + c.remove("javaee"));
    24 
    25         // boolean contains(Object o):判断集合中是否包含指定的元素
    26         // System.out.println("contains:"+c.contains("hello"));
    27         // System.out.println("contains:"+c.contains("android"));
    28 
    29         // boolean isEmpty():判断集合是否为空
    30         // System.out.println("isEmpty:"+c.isEmpty());
    31 
    32         //int size():元素的个数
    33         System.out.println("size:"+c.size());
    34         
    35         System.out.println("c:" + c);
    36     }
    37 }

      *另外根据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

        

  • 相关阅读:
    js项目结合的注意点
    cookie练习
    json记载字符个数
    js,jQuery获取标签
    新人签到
    使用Resources类搭建Unity简单的资源管理工具类
    初识vue
    原生JS写出贪吃蛇
    用js做一个简单的班级点名器
    Javascript 的"循环语句"
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/6217732.html
Copyright © 2011-2022 走看看