zoukankan      html  css  js  c++  java
  • java ->集合

    集合介绍

    集合,集合是java中提供的一种容器,可以用来存储多个数据。

    在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢?

    数组的长度是固定的。集合的长度是可变的。集合中存储的元素必须是引用类型数据

    ArrayList集合存储元素

    我们来回顾下,使用ArrayList集合存储元素并遍历的过程。

     

    练习一:ArrayList集合存储5个int类型元素

    public static void main(String[] args) {

    ArrayList<Integer> list = new ArrayList<Integer>();

        list.add(111);

        list.add(222);

        list.add(333);

        list.add(444);

        list.add(555);

        for(int i=0; i<list.size(); i++){

    System.out.println(list.get(i));

    }

    }

    练习二:ArrayList集合存储5个Person类型元素

    public static void main(String[] args) {

    ArrayList<Person> list = new ArrayList<Person>();

        list.add(new Person("小强"));

        list.add(new Person("老王"));

        list.add(new Person("小虎"));

        list.add(new Person("小泽"));

        list.add(new Person("小红"));

        for(int i=0; i<list.size(); i++){

            Person p = list.get(i);

    System.out.println(p);

    }

    }

    集合的继承实现关系

    查看ArrayList类发现它继承了抽象类AbstractList同时实现接口List(有序),而List接口又继承了Collection接口。Collection接口为最顶层集合接口了。 采集,聚集

    源代码:

    interface List extends Collection {

    }

    public class ArrayList extends AbstractList implements List{

    }

    这说明我们在使用ArrayList类时,该类已经把所有抽象方法进行了重写。那么,实现Collection接口的所有子类都会进行方法重写。

     

     

    Collection接口常用的子接口有:List接口、Set接口

     

    List接口常用的子类有:ArrayList类、LinkedList类

     

    Set接口常用的子类有:HashSet类、LinkedHashSet类

     

    Set无序 List 有序

    Collection接口概述

    既然Collection接口是集合中的顶层接口,那么它中定义的所有功能子类都可以使用。查阅API中描述的Collection接口。Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

    继续查阅API,发现Collection接口中很多集合的操作方法,那么这些方法都具体能做什么呢?

    Collection接口的基本方法

    这里我们不关心具体创建的Collection中的那个子类对象,这里重点演示的是Collection接口中的方法。

    创建集合的格式:

    方式1:Collection<元素类型> 变量名 = new ArrayList<元素类型>();

    方式2:Collection 变量名 = new ArrayList();

    方式1创建的集合,只能存储<>中指定的元素类型,该方式为常用方式

     

    方式2创建的集合,集合的元素类型默认为Object类型,即任何类型的元素都可以存储。

     

    演示Collection接口中的方法

    //创建集合

    Collection coll = new ArrayList();

    //1,往集合中添加对象元素。add(E e)方法,E代表创建集合时所指定的数据类型如<String>,那么,E就代表String类型;创建集合时若没有指定数据类型,那么,E就代表Object类型。

    coll.add("abc");

    coll.add("ef");

    coll.add("g");        

    //把集合打印一下。

    System.out.println(coll); //打印结果为:[abc, ef, g]

    System.out.println(coll.toString()); //打印结果为:[abc, ef, g]

    //2,从集合中删除元素remove(Object o)方法

    coll.remove("ef");        

    //删除后,集合元素为[abc, g]

    //3,判断集合中是否包含指定元素contains(Object o)方法(在List集合中依据equals方法,在Set集合中依据hashcode()与equals()方法)

    System.out.println(coll.contains("abc"));

    //打印结果为true

    System.out.println(coll.contains("ef"));

    //打印结果为false

        

    //4,获取集合元素个数size()方法

    System.out.println(coll.size());

    //打印结果为2

     

    //5,返回包含集合中所有元素的数组toArray()方法

    String[] array = coll.toArray();

    //数组中的元素为{"abc", "g"}

    //6,清除集合元素。remove()方法

    coll.clear();清空的是内容

    //清空后,集合元素为[],代表没有元素

  • 相关阅读:
    SQL游标的小知识
    SQL游标的小知识
    SQL游标的小知识
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    ACM1998
    Leetcode 946. Validate Stack Sequences 验证栈序列
  • 原文地址:https://www.cnblogs.com/miaoxingren/p/9411305.html
Copyright © 2011-2022 走看看