JAVA -数组

java数组 数组对于每一门编程语言来说都是重要的数据结构之一 当然不同语言对数组的实现及处理也不尽相同

java语言中提供的数组是用来**存储固定大小**的**同类型**的元素


一、数组的声明

1 、直接new 在赋值

                // 数组大小

int size = 10;

// 定义数组

double[] myList = new double[size];

int[] myInt = new int[size];

String[] myStringList = new String[size];

byte[] byteList = new byte[size];

myList[0] = 2.4;

myInt[0] = 1;

myStringList[0] = "test";

byteList[0] = 1;



2、 直接new 并赋值


int[] myInt1 = new int[]{1,2,3,4};


3、 不需要new 直接定义赋值



        int[]  myInt2 = {1,3,4};


二、处理数组


double[] myList1 = {1.9, 2.9, 3.4, 3.5};

 

      // 打印所有数组元素

      for (int i = 0; i < myList1.length; i++) {

        System.out.println(myList[i] + " ");

      }

      // 打印所有元素的总和

      double total = 0;

      for(int i = 0 ; i < myList1.length ; i++){

      total += myList1[i];

      }

      System.out.println("总和:"+total);

      //查找最大元素 

      double max = myList1[0];

      for(double elenment : myList1){

      if(elenment > max){

      max = elenment;

      }

      }

      System.out.println("最大值 : "+max);




三 数组作为参数和返回值

public class Arr {


public static void main(String[] args) {


int[] result = Arr.reverse(new int[] { 1, 3, 4, 5, 6, 7, 7, 8 });


System.out.println("数组长度:" + result.length);


for (int i = 0; i < result.length; i++) {

System.out.println("数组内容:第" + i + "个 元素 =" + result[i]);

}

}


// 作为参数

public static void printArray(int[] array) {

for (int i = 0; i < array.length; i++) {

System.out.print(array[i] + " ");

}

}


// 作为返回值

public static int[] reverse(int[] list) {

int[] result = new int[list.length];

for (int i = 0, j = list.length; i < list.length; i++, j--) {

result[i] = j;

}

return result;

}


}


四、多维数组


1、定义多维数组

//第一种定义二维数组写法 

int [][] a; //定义一个int类型的二维数组 

a = new int[5][5]; //为二维数组分配空间大小  

//通过下标的方式 为数组赋值

a[0][0] = 1;

a[1][0] = 2;

a[2][0] = 3;

System.out.println(a[0][0]);

System.out.println(a[1][0]);

System.out.println(a[2][0]);

 

//第二种定义二维数组的写法 

int[][]  aa = new int[2][3];  //定义数组的同时为其分配空间大小 

 

//通过下标的方式 为数组赋值

aa[0][0] = 33;

aa[1][0] = 44;

aa[1][1] = 55;

aa[0][1] = 33;

 

for(int i = 0 ; i < aa.length ; i++){

for(int j = 0 ; j < aa[0].length ; j++){

System.out.println(aa[i][j]);

}

}

//  

// 第三种定义二维数组   不规则数组 

int[][]  aaa = new int[2][];

aaa[0]=new int[5];             //为第1行分配5列

aaa[1] = new int[6]; //为第2咧分配6列

aaa[0][4] = 1;

aaa[1][5] = 2;

 

System.out.println(aaa[0][4]);

System.out.println(aaa[1][5]);

System.out.println(aaa[0][2]);

 

    // 第四种  定义二维数组同时赋值 

int[][] aaaa = new int[][]{{1,2,3},{1,2},{5}};

// 第5种  定义二维数组同时赋值 

int[][] b = {{1,2,3},{1,2},{5}};

// 第6种  定义二维数组同时赋值 

String[][] ss = new String[][]{{"1","11","111"},{"2","22","222"}};




2 二维数组的引用 

使用下标进行引用     


五、arrays 的常用方法  

  java.util.Arrays 类 能方便的操作数组  它提供的所有方法都是静态的   

  1 fill  给数组赋值  

  2 sort 给数组排序  升序

  3 equals 方法比较数组中 元素值是否相等 

  4 binarySearch 能对排序好的数组进行二分查找法操作    



package com.java.arr;


import java.util.Arrays;


public class Arr1 {


public static void output(int[] array){

if(array != null){

for(int i = 0 ; i < array.length ; i++){

System.out.println(array[i]);

}

}

}

public static void main(String[] args) {

int[]  array = new int[5];

//填充数组 

Arrays.fill(array, 5);

Arr1.output(array);

System.out.println("=================");

//将数组中 第二个元素和第三个元素 赋值为 8   1 和4 为修改的开始和结束位置的下标 8为填充的内容 

Arrays.fill(array, 1,4,8);

Arr1.output(array);

System.out.println("=================");

//对数组的第二个到第6个 进行排序

int[]  arr1 = {7,8,1,3,2,12,6,4,9};

Arrays.sort(arr1,2,7);

Arr1.output(arr1);

System.out.println("=================");

//对整个数组进行排序

Arrays.sort(arr1);

Arr1.output(arr1);

System.out.println("=================");

//比较数组元素是否相等

System.out.println("比较数组元素是否相等:Arrays.equals(array, array1):"+"\n"+Arrays.equals(array, arr1));

int[] array2 = arr1.clone();

System.out.println("克隆后数组元素是否相等:Arrays.equals(array1, array2):"+"\n"+Arrays.equals(arr1, array2));

System.out.println("=================");

//使用二分搜索算法查找指定元素所在的下标(必须是排序好的 否则结果不正确)

Arrays.sort(arr1);

System.out.println(Arrays.binarySearch(arr1, 3));

}

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值