zoukankan      html  css  js  c++  java
  • 数组和集合(一):数组与集合入门

    一、数组与集合的对比

    • 数组:可以存储基本数据类型和对象,数组的长度固定,不适合在对象数量未知的情况下使用。
    • 集合:只能存储对象,对象类型可以不一样,长度可变,可在多数情况下使用。

    二、数组

    1. 数组概述

    • 数组是多个相同类型数据的组合,实现对这些数据的统一管理
    • 数组属于引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量
    • 数组中的元素可以是任何数据类型,包括基本类型和引用类型 

    2. 数组的声明和赋值

    2.1 数组的声明方式:

    type var[]
    //或
    type[] var;
    

      

    2.2 赋值语法:

    基本类型的数组有三种赋值形式,如下所示:

    int[] arr = {1,2,3};  //方式一
    int[] arr = new int[]{1,2,3};  //方式二
    int[] arr = new int[3];  //方式三
    arr[0]=1;
    arr[1]=2;
    arr[2]=3;

    2.3 注意事项:

    • · 声明数组时不能指定其长度,例如:int a[5] //非法
    • · 不能在给定初始值的同时还给定长度,例如:
    int[] arr = new int[3]{1,2,3} //编译报错 

    3. 数组元素的引用

     

    4. 数组元素的默认值

     

    5. 多维数组

    Java中多维数组必须是规则矩阵形式
            //创建一个4行不等列的二维数据
            int[][] tt = new int[4][];
            tt[0] = new int[2];
            tt[1] = new int[4];
            tt[2] = new int[6];
            tt[3] = new int[8];
    
            //创建一个4行5列的二维数据
            int[][] tt2 = new int[4][];

    三、集合

    1. 集合框架图

    如图所示:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口

     

    • Collection接口:是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。
    • Map:Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不能包含重复的key,但是可以包含相同的value。
    • Iterator:所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:

        1.hasNext()是否还有下一个元素。

        2.next()返回下一个元素。

        3.remove()删除当前元素。

    2. List、Set、Map介绍及对比

    1、List(有序、可重复、允许存在多个null元素)

    List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。

     

    2、Set(无序、不能重复、只允许存在一个null元素)

    Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。

     

    3、Map(键值对、键唯一、值不唯一、只允许存在一个Key为null元素 )

    Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。

     

    4. 对比如下:

     

  • 相关阅读:
    Flex通过Blazeds利用Remoteservice与后台java消息推送
    flex 实时更新的一些方法总结
    想让领导放权,就先让领导放心(深度好文)
    教师表(TEACHER.DBF)
    Delphi中基本控件之SaveDialog控件的使用总结
    Delphi实现类的持久化保存(DFM格式)
    人事中的BP是什么意思?
    从HR 到SBP其实还有很长的一段路要走
    在DBGrid中,按ctrl+Delete不让删除,怎么实现
    delphi adoquery的post和UpdateBatch
  • 原文地址:https://www.cnblogs.com/wslook/p/9385502.html
Copyright © 2011-2022 走看看