3. 数组基本知识点

一、定义

存放一堆相同类型且有序的数据的容器。是一种数据结构。

特点

1.每个数据称为一个元素,元素的个数为数组的长度。

2.可以通过下标值(索引值)访问 其中的元素,索引值从 0 开始。

3.数组的长度一旦固定不可变。

数组没有固定的类名 每一个数组都是对象

二、数组的实例化

1.动态初始化

  1.1 数据类型[ ]  名字 = new int[ ]{ 元素1,元素2,......元素n }    

                  eg: int[ ]  arr = new int[ ]{ 1,2,3,4,5}; 

  1.2 数据类型[ ]  名字 = new int[n]  n为元素的个数

                  eg: double[ ]  weight = new int[ n ];

                         weight[0] = {元素1} ;

                         weight[1] = {元素2};

             该初始化方法有默认值:

                   整数型:byte,short,int,long  是 0

                   浮点型 :float,      double     是 0.0

                   布尔型 :boolean                 是 false

                   字符型 :char                       是 ”\u0000“

                   字符串:String                      是 null

2.静态初始化

  数据类型[ ]  名字 = {元素1 ,元素2.........元素n }

    eg:  int[ ] arr = {1,2,3,4,5};

  注意 : 不可以先声明在初始化也就是不能像1.2将等于号左右分开写

三、数组的存取和遍历

1.数组的长度

数组的长度为 : 数组变量名.length    eg: arrs.length

2.数组的访问(取)

通过下标进行访问 下标的区间是 0 - 元素的个数;     也就是 0  - 数组的长度 - 1 

3. 数组的存

直接将要存的值赋给目标元素,也就是将原来数组存的值覆盖掉,目标元素通过下标值访问

2. 可以新定义一个数组变量 然后将原来的数组赋值给新的变量。

public class Test{
 public static void main(String[] args) {
        int[] x = { 1, 2, 3, 4, 5 };
        int[] y = x;
        System.out.println(y[2]);
   }
 }

4.数组的遍历

1.普通的for循环 :遍历下标

2.增强for循环:for each循环

for( 元素类型 变量名 : 数组 | 集合 | 枚举){   }

新定义一个变量 将数组中取出的值赋给新变量然后循环输出

5.两种遍历的的对比

增强for循环中没有下标的概念   只是将取出的值赋给新定义的变量然后输出该值

增强for循环中,不能对数组进行改动,因为没有下标无法访问

增强for循环中比遍历的下标的执行效率要高

四、数组工具类

1.toString():

   因为数组的变量存的是地址 如果直接打印数组的变量名字,会输出16进制的地址

   所以将数组转为字符串形式输出

2.binarySearch( 数组名, 目标元素 ) : 用二分法对查找某个元素,此时数组必须升序排列,返回的是目标元素的下标值

如果没有找到则返回-(查找元素在的位置 +1) 

3.fill(数组名,元素 ) : 使用元素填满整个数组

4.sort(数组名) :只能对提前设置好排序规则的类的 数组进行排序 

       eg: 字符串排序可以按照先大写后小写的顺序

              整数型按照从小到大排序

5.copyof(原数组名,新数组的长度): 将一个数组的部分或全部元素复刻到一个新数组中

新数组的长度 > 原来的数组长度  将原数组拷贝到新数组的最前面,其他位置是默认值

新数组的长度 = 原来的数组长度  叫拷贝 也就是复制一个与原来数组内容一样的

新数组的长度 < 原来的数组长度 部分拷贝  将原数组从头开始拷贝到新数组,位置不够则舍弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值