集合——Collection

为什么出现集合类?

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

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

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

集合类的特点:

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

Collection接口概述(它是一个接口,不是对象):

    是Collection层次结构中的根接口。

    Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection内的对象允许有重复的元素,而另一些则不允许。一些collection内的对象是有序的,而另一些则是无序的。(有序则可以指定存放位置)

Collection集合的继承体系结构图:

         

(方框里面的是接口类型,圆框里面的是具体的实现类,注意接口不能实例化)

Collection接口成员方法:

1:添加功能

     boolean add(Object obj):添加一个元素

    boolean addAll(Collection c):添加一个集合的元素

2:删除功能

    void clear():移除所有元素

    boolean remove(Object o):移除一个元素

     boolean removeAll(Collection c):移除一个集合的元素

      假如定义了两个集合c1和c2,

          c1.removeAll(c1):表示移除c1中的所有元素,返回true

          c1.removeAll(c2):表示移除c1中与c2中相同的元素,有移除元素则返回true

3:判断功能

    boolean contains(Object o):判断集合中是否包含指定的元素

    boolean containsAll(Collection c):判断集合中是否包含指定的集合元素

                      (只有包含所有的元素,才叫包含)

    boolean isEmpty():判断集合是否为空

4:获取功能

    (重点)Iterator<E> iterator()迭代器,集合的专用遍历方式

5:长度功能

     int size():元素的个数

6:交集功能

     boolean retainAll(Collection c):两个集合都有的元素?元素去哪了?返回的boolean又是什么意思呢?

        假设有两个集合A,B:

        A对B做交集,最终的结果保存在A中,B不变。

        返回值表示的是A是否发生过改变。

集合的遍历:(一种方法是把集合转为数组,另一种方法是使用Iterator 迭代器,这是集合的专用方式)

1、把集合转换为数组

    Object[] toArray():把集合转成数组,可以实现集合的遍历。

    (集合的遍历;其实就是依次获取集合中的每一个元素)

/*集合转数组遍历*/
public class CollectionDemo3 {
    public static void main(String[] args) {
        // 创建集合对象
        Collection c = new ArrayList();

        // 添加元素
        c.add("hello"); // Object obj = "hello"; 向上转型
        c.add("world");
        c.add("java");

        // 遍历
        // Object[] toArray():把集合转成数组,可以实现集合的遍历
        Object[] objs = c.toArray();
        for (int x = 0; x < objs.length; x++) {
            // System.out.println(objs[x]);//这个也是可以实现的
    /*我知道元素是字符串,我在获取到元素的的同时,还想知道元素的长度。
    //System.out.println(objs[x] + "---" + objs[x].length());
    上面的实现不了,原因是Object中没有length()方法
    我们要想使用字符串的方法,就必须把元素还原成字符串
    向下转型*/
            String s = (String) objs[x];//把元素还原成字符串
            System.out.println(s + "---" + s.length());//这个还输出了元素的长度
        }
    }
}

2、Iterator接口概述:

对 collection 进行迭代的迭代器,是集合的获取元素的方式,依赖于集合而存在

  集合的操作步骤:

    A:创建集合对象

    B:创建元素对象

    C:把元素添加到集合

    D:遍历集合

A:存储字符串并遍历
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;

public class CollectionDemo {
    public static void main(String[] args) {
            //创建集合对象
        Collection c = new ArrayList();

        //创建并添加元素
        c.add("hello");
        c.add("world");
        c.add("java");

        //遍历集合
        Iterator it = c.iterator();
        while(it.hasNext()) {
            String s =(String) it.next();
            System.out.println(s);
        }
    }
}
B:存储自定义对象并遍历
学生类:
public class Student {
    private String name;
    private int age;

    public Student(){
}
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
    //getXxx()/setXxx()(此处省略了get/set方法)
}

主类:
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;

public class StudentDemo {
    public static void main(String[] args) {
    //创建集合对象
    Collection c = new ArrayList();    

  //创建学生对象
    Student s1 = new Student("刘备",33);
    Student s2 = new Student("关羽",30);
    Student s3 = new Student("张飞",30);
    Student s4 = new Student("孙权",25);
    Student s5 = new Student("曹操",40);    

    //添加元素
    c.add(s1);
    c.add(s2);
    c.add(s3);
    c.add(s4);
    c.add(s5);    

  //遍历集合
    Iterator it = c.iterator();
    while(it.hasNext()) {
        Student s = (Student)it.next();
        System.out.println(s.getName()+"---"+s.getAge());
    }
}
时间: 2024-08-07 20:23:27

集合——Collection的相关文章

java集合Collection接口

collection集合 Map集合 Collection接口 Collection接口是List.Set和Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作List和Queue集Collection提供了大量添加.删除.访问的方法来访问集合元素.主要的方法如下:

使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NET的一部分.今天我们WCF分布式开发步步为赢第8节的内容:使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据.本节内容除了介绍几个类型概念外的,同样会详细给出代码的实现过程.此外我们会分析这几种数据类型的优势和缺点,以及在面向对象的服务开发过程中如何解决

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

在含有null值的复杂类的集合(Collection)中取最大值

在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Class<T> where T : struct { public T? Value { get; set; } } var ints = new List<Class<int>>() { new Class<int>() { Value = 2 }, new Cla

java基础(五)--- 集合collection

集合 collection: Collection 层次结构中的根接口: Collection的功能概述: * 1:添加功能 * boolean add(Object obj):添加一个元素 * boolean addAll(Collection c):添加一个集合的元素 * 2:删除功能 * void clear():移除所有元素 * boolean remove(Object o):移除一个元素 * 3:判断功能 * boolean contains(Object o):判断集合中是否包含指

Java集合 - Collection

Ref:http://blog.csdn.net/liulin_good/article/details/6213815  http://www.cnblogs.com/averey/p/4306166.html 一.java.util.Iterator<E>接口 迭代器 1 package java.util; 2 3 public interface Iterator<E>{ 4 // Return true iteration has more elements 5 bool

java之集合Collection 3个例子

package cn.itcast_01; import java.util.ArrayList; import java.util.Collection; /* * 集合的由来: * 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. * 而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢? * 数组和StringBuffer.但是呢?Strin

Java基础集合Collection Map的概述

概述: 1,jse-collection分类,主要讲解Collection和Map接口的子类及其接口和相关工具类(不含线程安全的集合类). 2,本节介绍一下整体集合框架的结构图. 一.关于java集合涉及到的基本数据结构和算法的理论(这里试试简单的给大家一些参考). 数组(Array),在中间位置插入.删除效率低下,但是按位置索引查找快.链(Linked),在中间位置插入.删除效率高,按位置索引查找效率低下.树.散列. ---------------集合(Set),无序.不重复的原始集合.列表(

集合Collection

集合 因为容器中数据结构不同.容器有很多种,不断的共性功能抽取,形成了集合体系-->集合框架称之为collection接口 集合框架 Collection接口中的共性功能 1.添加 Boolean add(Object obj);一次添加一个 Boolean addAll(Collection c);将制定容器中的所有元素添加 2.删除 void clear(); boolean remove(object o); boolean remove(collection c); 3.获取长度 int