JavaSE | 数组 和 Arrays工具类

最近在学java的一些基础知识,快速入门或者实践项目都可以看看这个网站 how2j教程,整理得挺好的。 


数组是一个固定长度的,包含了相同数据类型线性容器

目录

一、声明与创建数组

二、数组初始化

 

三、相关属性与方法

1、获取数组长度(元素个数)

四、循环遍历数组

1、for循环

2、for each循环  —— 强化型for循环

五、Arrays工具类

 

1、将数组转化为字符串 —— toString 方法

 

2、数组拷贝 —— copyOf 方法

3、数组排序 —— sort 方法

4、集体赋值 —— fill 方法

5、查找 —— binarySearch 方法

end 


 

一、声明与创建数组

声明数组型变量:    数组类型[ ]  变量名

创建数组:   new 数组类型[数组长度]

    //声明一个数组
    int[] a;
    //创建一个长度为 10的数组,将 a指向该数组
    a = new int[10];
    //声明的同时,指向一个大小为 10的数组
    int b[] = new int[15];

(声明数组变量,有时候也写成int a[ ] )

 

二、数组初始化

分配空间,同时赋值 :

    //写法一: 分配空间同时赋值
    int[] a = new int[] {2, 3, 5, 7, 11, 13};
    //写法二: 省略了new int[],效果一样
    int[] b = {2, 3, 5, 7, 11, 13};

 

三、相关属性与方法

1、获取数组长度(元素个数)

length属性:用于访问一个数组的长度,元素从数组下标 0 开始到 length - 1

    int[] a = new int[10];
    System.out.println(a.length);  //10

 

四、循环遍历数组

1、for循环

    int[] a = new int[10];
    for(int i = 0; i < a.length; i++)
        System.out.println(a[i]);

2、for each循环  —— 强化型for循环

依次处理数组中的每一个元素,而不必为指定下标而分心。

    int[] a = new int[10];
    for (int value : a) 
        System.out.println(value);

注意:此循环只可用于取值,不能修改数组内的值。

 

五、Arrays工具类

Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。

 

1、将数组转化为字符串 —— toString 方法

返回一个包含数组元素的字符串,这些数组元素被放置在[ ]内,用逗号分隔。

    int[] a = {2, 3, 5, 7, 11, 13};
        
    // [2, 3, 5, 7, 11, 13]
    System.out.println(Arrays.toString(a));

 

2、数组拷贝 —— copyOf 方法

🔺 java允许将一个数组变量拷贝(赋值操作)给另一个数组变量,此时两个变量引用同一个数组

public class Hello {

    public static void main(String[] args) {

        int[] a = {2, 3, 5, 7, 11, 13};
        int[] b = a;
        a[1] = -1;

        System.out.println(Arrays.toString(a));  //[2, -1, 5, 7, 11, 13]
        System.out.println(Arrays.toString(b));  //[2, -1, 5, 7, 11, 13]
    }
}

🔺 如果希望将一个是数组的内容拷贝到一个新的数组中去,且不引用同一个数组,就要使用Arrays.copyOf方法

public class Hello {

    public static void main(String[] args) {

        int[] a = {2, 3, 5, 7, 11, 13};
        int[] b = Arrays.copyOf(a, a.length);
        a[1] = -1;

        System.out.println(Arrays.toString(a));  //[2, -1, 5, 7, 11, 13]
        System.out.println(Arrays.toString(b));  //[2, 3, 5, 7, 11, 13]
    }
}

此法也经常可以用来增加数组长度

static type copyOf (type[ ] a, int length)

传入参数:待拷贝数组 a,拷贝长度 length。

  1. length < a.length   只拷贝长度范围内的元素
  2. length = a.length   完整拷贝
  3. length > a.length   完整拷贝后再增长数组

 --也有局部复制的方法 --

 

3、数组排序 —— sort 方法

采用优化的快排。

static void Arrays.sort(type[ ] a)

public class Hello {

    public static void main(String[] args) {

        int[] a = {3, -1, 16, 7, 1, 3};
        Arrays.sort(a);  //排序

        System.out.println(Arrays.toString(a));  // [-1, 1, 3, 3, 7, 16]
    }
}

 

4、集体赋值 —— fill 方法

static void fill(type[ ] a, type v)

将数组的所有元素值设置为v

public class Hello {

    public static void main(String[] args) {

        int[] a = {3, -1, 16, 7, 1, 3};
        Arrays.fill(a, 0);

        System.out.println(Arrays.toString(a));  //[0, 0, 0, 0, 0, 0]
    }
}

 

--也有局部赋值的方法 --

 

5、查找 —— binarySearch 方法

二分法查找。

需要注意的是,使用binarySearch进行查找之前,必须使用sort进行排序
(如果数组中有多个相同的元素,查找结果是不确定的)  

 static int binarySearc(type[ ] a, type v)

  • 查找成功:返回相应的下标值
  • 查找失败:返回一个负数

--也有局部查找的方法 --

 



end 

欢迎关注个人公众号 鸡翅编程 ”,这里是认真且乖巧的码农一枚。

---- 做最乖巧的博客er,做最扎实的程序员 ----

旨在用心写好每一篇文章,平常会把笔记汇总成推送更新~

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值