首页 > 其他分享 >3.数组

3.数组

时间:2022-12-23 10:33:37浏览次数:22  
标签:arr int 元素 Arrays 数组 排序

一、数组的概述

数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。

数组的长度一旦确定,就不能修改

连续空间

二、一维数组

1.声明
  • 一维数组的声明方式:
  • type var[] 或 type[] var;
  • Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法
2.初始化
  • 动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
  • 静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int arr1[] = new int[]{ 3, 9, 8};
String names[] = {"李四光","茅以升","华罗庚"};
3.数组元素的引用
4.数组元素的默认初始化值

3.数组_数组元素

基本数据类型数组在显式赋值之前, Java会自动给他们赋默认值。

5.内存的简化结构

3.数组_数组_02

三、多维数组的使用

四、数组中涉及到的常见算法

  1. 数组元素的赋值(杨辉三角、回形数等)
  2. 求数值型数组中元素的最大值、最小值、平均数、总和等
  3. 数组的复制、反转、查找(线性查找、二分法查找)
  4. 数组元素的排序算法
1.衡量排序算法的优劣:
  1. 时间复杂度:分析关键字的比较次数和记录的移动次数
  2. 空间复杂度:分析排序算法中需要多少辅助内存
  3. 稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保 持不变,则称这种排序算法是稳定的。
2.十大内部排序算法

五、Arrays工具类的使用

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。

import java.util.Arrays;

public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;

int arr1[] = new int[]{ 3, 9, 8};
String names[] = {"李四光","茅以升","华罗庚"};

//判断相等
if (Arrays.equals(arr1,arr)) {
System.out.println("数组工具类判断相等");
}
//排序
Arrays.sort(arr);
//对排序后的数组进行二分法检索指定的值。未排序的不行
int i = Arrays.binarySearch(arr, 8);
System.out.println("排序后的数组进行二分法检索指定的值。" + i);
//转换字符串
System.out.println("排序arr: " + Arrays.toString(arr));
//将指定值填充到数组之中。
Arrays.fill(names,"666");
System.out.println("将指定值填充到数组之中输出 : " + Arrays.toString(names));

}

3.数组_数组_03

六、数组使用中的常见异常

注意: 编译时不报错!!!

数组脚标越界异常(ArrayIndexOutOfBoundsException)

空指针异常(NullPointerException)

标签:arr,int,元素,Arrays,数组,排序
From: https://blog.51cto.com/u_15227402/5965037

相关文章

  • 二维数组,卖股票
    int[][]dp=newint[n][2]int[i][0]第i天不持仓收益int[i][1]第i天持仓收益BM81 买卖股票的最好时机(二) 描述假设你有一个数组prices,长度为n,其中prices[i]是......
  • 块状数组简述
    参考资料:分块思想是一种广泛的思想,树状数组与线段树实际上都是使用了该种思想。但是,在实际问题中,我们常常会遇到一些更为灵活的问题,用线段树或者树状数组并不是那么好用。......
  • JavaScript 数组结构与树结构的转换
    前言作为前端开发的同学,在与后端进行数据联调的时候,我们前端的同学处理Array数组结构的数据是最多的,list、table、card各种需要遍历的展示显示我们都会用数组来处理。当数......
  • python 数组字典转换
    将提交的数组字段一个字典 [ { "name":"name1", "age":"1", }, { "name":"name2", "age":"2", } ]#变成{ "name":"name1,name2",......
  • 【ES6新特性】一行代码解决:搜索对象数组,匹配具体字段属性值的返回值和索引的问题
    arr.find(v=>v.key=="需要搜索的值")//返回搜索匹配字段属性值的对象arr.findIndex(v=>v.key=="需要搜索的值")//返回匹配项的索引值......
  • JS获取一个字符串中被指定的两个字符串包括起来的所有字符串数组
     letgetStrinsBetweenTwoStrings=(targetString,beginString,endString)=>{letaa=targetString.split(beginString),re=[];for(leti=1,len=aa......
  • react中的api获取数组排序
    [javascript-SortanarrayofobjectsinReactandrenderthem-StackOverflow](https://stackoverflow.com/questions/43572436/sort-an-array-of-objects-in-reac......
  • 基础教程-函数-lambda-数组
    函数创建,调用函数deffun():print("6")fun()参数根据需要添加任意数量的参数,只需用逗号分隔即可默认值:defmy_function(country="China"):print("Iamfro......
  • 二维数组的创建
    intmain(){ intarr[3][4]={{1,2,3},{4,5}};//二维数组初始化不能省略列  inti=0; for(i=0;i<3;i++) { intj=0; for(j=0;j<4;j++)......
  • JAVA数组
    数组是什么?数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。简单来讲就是一组相同类型元素的集合。为什么使用数组?当需要存储大量数据,例......