java 数组总结

   

1.数据结构

计算机储存和组织数据的一种方式, 根据存储的方式不同,操作特性也就不同

合理选择数据结构能够有效的提升存储效率和运行效率.

数据操作:

增删改查

常见的数据结构:

数组,链表,散列表,红黑树,B+树,二叉树等

2.数组

2.1数组特性

数组是引用数据类型,是一种非常常见的数据结构

数组能连续存储多个数据,但是统一数组中数据类型要一样。之前的变量只能存储一个数据。

数组是引用型数据类型,是一种常见的数据类型

数组在空间中是连续存储的,并且有独一无二的下标,下标是从0开始的,

数组长度一旦确定不能更改,想要添加和删除数据只能重新创建新的数据,再把之前的数据 复制存放进去。

数组有指定下标,通过内存地址偏移可以快速定位到我们想要操作的数据,所以数组的查询 效率极高。

数组特点:添加删除慢 ,查询更改块。

链表:添加删除快,查询慢。

数组声明:

    静态声明:在已知数组中每个元素的情况下,使用静态声明。

    语法结构:数据类型[] 变量名={值1,值2,值3...,}

    数据类型 变量名[] ={值1,值2,值3...,}

    eg:int[] a={1,2,3} 一维数组,保存的是数值

         int[][] a={{1,2,3},{1,2,3},{1,2,3}}二维数组,保存的是一 维数组的引用(地址)

    数组可以多维,但是每一维的类型必须一致。

   

   

    动态声明:在不知道数组中的每个元素的情况下,使用动态声明,需要制定数组长  度,然后用默认值占位,默认的值都是0.

    语法结构:数据类型[] 变量名=new 数据类型[长度];

    eg:Int[] a=new int[3];

    int [][] a=new int[3][5]; 二维数组中有三个一维数组,每个一维数组中有5个数据,默认值都是0

    eg:{

    {0,0,0,0,0}

    {0,0,0,0,0}

    {0,0,0,0,0}

    }

 默认值:

     整数 :0; 小数:0.0; 字符:/u0000; 布尔型: false, 引用型 :null

2.11数组静态声明:

2.12数组动态声明:

2.13数组查询

2.14 更改数组的值

2.15 数组遍历

2.16 数组操作中常见错误

1.下标越界

运行结果:

 

2. 控制正异常

运行结果:

2.17 参数传递方法

数组参数传递方法有两种:1.传递参数 2.传递字面量

2.18 传值和传引用

传值和传引用

   传值:传递基本类型

   传引用:传递引用类型

2.19 数组赋值

数组复制

   系统自带的方法System.arraycopy(src, srcPos, dest, destPos, length);

   src:源数组;  srcPos:源数组起始位置(包含);  dest:目标数组;   destPos:目标数组起始位置(包含);

   length:替换的元素个数

   eg:System.arraycopy(src, 3, dest, 3, 3);

2.2 二维数组

2.21 静态声明

2.22 动态声明

2.23 查询

2.24 修改

2.25 二维数组遍历

2.26 例子

运行结果:

3.控制台接收用户输入

用到Scanner类

3.交换变量值

常用三种方法:1. 中间变量法 2.位移运算交换 3.加减运算

Int x=2;

Int y=3;

1. 中间变量法:

2.位移运算交换

3.加减运算

4.排序

4.1冒泡排序

冒泡排序:

   1 比较相邻的两个元素,如果第一个比第二个大,就交换位置

    2 对每一对相邻元素做同样的工作,比较完一轮之后,最后一个一定是最大的哪个

    3 在对以上元素重复该步骤,除了最后一个

    4 一直到没有一对元素需要比较,终止

   嵌套循环,外层循环决定循环了多少轮 , 内层循环决定每轮比较的次数

​​​​​​​4.2 选择排序

 选择排序:

   1 每次都把最小的放到左边

     先拿出第一个,假设是最小的,然后挨个和后面所有的进行比较,如果有比他小的,就 保存对应下标

   2 比较完之后,就保存了最小的下标,然后判断是否和第一个相同,不同就换位

4.3系统api

  API排序:系统提供的排序方法,底层实现是冒泡排序,实现升序排序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值