数据结构第一节——线性表(数组)

什么是数组

概念

数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

特点

  1. 有序排列
  2. 自身是引用类型,
  3. Java中元素类型固定
  4. 内存中是连续存储,首地址
  5. 通过下标访问元素
  6. 查询和修改快,增删慢
  7. 初始化必须固定长度,不可修改

一维数组

一维数组的声明和初始化及访问

String[] names = new String[10];
names[0] = "fufan";
names[1] = "zhanghuihuan";
names[2] = "yukaiyi";
names[3] = "zhangyuqing";
names[4] = "fuyu";
names[5] = "wangpantuo";

System.out.println("names[4]:" + names[4]); 

复制代码

获取数组长度

String[] names = new String[10];
names[0] = "fufan";
names[1] = "zhanghuihuan";

System.out.println("names length:" + names.length); // 2

复制代码

数组遍历

两种方法

  1. for循环
  2. 增强for循环


String[] names = {"fufan","zhanghuihuan","fuyu","wangpantuo"};
/*System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);
System.out.println(names[3]);
System.out.println(names[4]);*/
 
// 方法1
for(int i = 0;i < names.length;i++){
    System.out.println(names[i]);
    
// 方法2 增强for循环
for (String name: names) {
    System.out.println(name);
}

复制代码

数组元素的默认初始化

  • 数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。

  • 对于基本数据类型而言,默认初始化值各有不同。

  • 对于引用数据类型而言,默认初始化值为null

数组元素类型 元素默认初始值
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0
char 0 或写为:’\u0000’(表现为空)
boolean false
引用类型 null

代码略

内存结构

JAVA的内存分配主要涉及到几个关键词,堆,栈,方法区,本地方法栈,寄存器。

  1. 通过java编译生成的class文件加载时进入的方法区
  2. main方法运行时进行的栈内存,定义的变量也存放在栈内存
  3. new出来的对象等存放在堆内存在。

具体存储结构如下2张图

image.png

image.png

地址引用

扫描二维码关注公众号,回复: 14249331 查看本文章

数组属于引用型变量,因此两个相同类型的数组且具有相同的引用,它们就有完全相同的元素。

二维数组

一般用的少,原理类似,这里不赘述

Java中对数组的封装————List

自己手动实现一个List,参考ArrayList源码

思考几个方面

  1. 成员变量
  2. 基本方法
  3. 扩容方法
  4. 增删改查方法

TODO 待实现

LeetCode 关于数组相关的算法题

TODO 待补充

总结

image.png

猜你喜欢

转载自juejin.im/post/7107028335519072287