数组和集合(一):数组与集合入门

一、数组与集合的对比

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

二、数组

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. 对比如下:

 

原文地址:https://www.cnblogs.com/wslook/p/9385502.html