一、数组概念

一、数组定义

数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器。

二.数组的声明 +数组的长度

定义数组时需要确定数组的长度(元素的个数),确定后不能更改;

获取数组长度:数组名.length

1. 格式1(默认初始值)

  • 数据类型 [ ] 数组名 = new 数据类型 [ 数组的个数 ]

    例:int [ ] money = new int [ 100 ];

    数组长度:money.length(100);

2.格式2(赋予初始值)

  • 数据类型 [ ] 数组名 = new 数据类型 [ ]

    例:int [ ] money = new int [ ]{100,200,300,...n};

    数组长度:money.length(n);

3.格式3(格式2简写)

  • 数据类型 [ ] 数组名 =

​ 例:int [ ] money = {100,200,300};

​ 数组长度:money.length(3);

三、数组的访问

例:

int [ ] money = new int [ 100 ]; //声明一个包含100个元素的数组

访问第一个元素(数组下标索引从0开始)

money[ 0 ] = 100;

访问第二个元素

money [ 1 ] =200;

​ ...

访问第100个元素

money [ 99 ] = 1000;

访问第101 个元素(数组下越界异常,数组越界,不会显示编译错误,而是运行时报错)

money[ 100 ]= 1100;

四、数组的遍历

例:

int [] arr = new int [6];
for(index = 0;index < arr.index.length;index++){
System.out.println(arr[index])
}

五、数组的特点

1.数组长度一旦指定,就无法更改;

2.数组一旦声明类型后,数组中只能存放同一类型的数据数组;

3.数组类型可以是任何数据类型,包括基本类型和引用类型;

数组有索引:从零开始,到数组.length-1结束。

六、数组的缺点

1.数组长度指定后,就不能更改;

2.删除、添加元素效率低;

3.数组中实际元素的数量没办法获取,没有提供对应的方法或属性来获取;

七、实例

/**
* @author yeye
* @desc 数组访问示例
* @date 2024
*/
public class ArrayVisitDemo {
public static void main(String[] args) {
int [] arr = new int [5];
arr [0] = 1;
arr [1] = 2;
arr [2] = 3;
arr [3] = 4;
arr [4] = 5;
// arr [5] = 6;//数组越界,不会显示编译错误,而是运行时报错
System.out.println("数组的长度是:"+arr.length);
//数组遍历
for(int index = 0;index <arr.length;index++){
System.out.println(arr[index]);
}
System.out.println("数组元素为:"+arr[0]+" "+arr[1]+" "+arr[2]+" "+arr[3]+" "+arr[4]);
}
}

二、一维数组和二维数组

一、一维数组定义

数组中每个元素都只带一个下标,这样的数组称为一维数组。使用Java数组前,应声明数组并为数组分配存储空间。

二、声明一维数组

1.类型标识符 [ ] 数组名 =null; 例:

int [ ] list = null; //声明list为一维类型数组

2.类型标识符 数组名 [ ] = null;例:

int list [ ] = null; //声明list为一维类型数组

三、初始化一维数组

1.通过直接指定初值来初始化数组,例:

int [ ] list = {1,2,3};

2.利用new关键字初始化

利用new 关键字初始化数组,不仅能为数组分配需要的存储空间,还能按照Java的默认初始化原则为数组元素赋值。

四、二维数组

例:int money [ ] = new int [3] [12];

二维数组的遍历

int money [ ] = new int [3] [12];

for(int row = 0;row <3;++row){
for(int column = 0;column<13;++column){
money[row][column] =100;
}
}

三、数组的算法(冒泡排序法)

口诀 :

冒泡排序要知道;内外循环两层套;外环数组遍历到;内环边界计算好;左右元素判大小;临时变量交换好。

//外层循环遍历整个数组(最后一个数组不需要遍历)
for(i = 0;i < (数组长度-1);i++){
//内存循环控制元素交换即冒泡,一般为数组长度-外层循环遍历-1
for(j = 0;j <(数组长度-i-1);j++){
//升序--如果前面大于后面则交换;降序--如果后面大于前面则交换
if(array[j] > array[j+1]){
//引进temp变量作为交换媒介
int temp = array[j+1]; //临时变量
array[j+1] = array[j];
array[j] = temp;
}
} }

实例:

package array;

/**
* @author yeye
* @desc 冒泡排序法
* @date 2024
*/
public class BubbleSortDemo {
public static void main(String[] args) {
// 定义数组
int[] arr =new int [] {3,2,5,8,6,1,4,7};
//冒泡排序
for(int i = 0;i < arr.length;i++){
for(int j =0;j <arr.length-i-1;j++){
if(arr[j] > arr[j+1] ){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
// 输出排序后的数组
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]);
}
}
}

Java数组小白版的更多相关文章

  1. 《Effective Java(中文第二版)》【PDF】下载

    <Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)& ...

  2. 《Effective Java中文版第二版》读书笔记

    说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个 ...

  3. java数组知识总结(一)//按类

    在线api  目录: 零/数组(基本元素) 1.  声明一个数组 2.  创建一个数组 3.  数组名.length 4.  数组的引用 一/java.lang.reflect.Array     / ...

  4. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  5. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

  6. Java 数组基础

    数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...

  7. Java数组及其内存分配

    几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...

  8. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

  9. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

  10. Java数组扩容算法及Java对它的应用

    1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...

随机推荐

  1. #PowerBi Superchange PowerBi 开篇(1)

    本书由B站京西漫步老师推荐,并提供了相应的学习资源,有同感兴趣的朋友,可以加我好友免费分享资源. 本书主要以总结笔记,原文+译文+部分案例实操为主. 预计更新时间为23年6月-23年7月. 本系列笔记 ...

  2. 支持TraceID、错误文件、错误行的第三方golang库:gerror

    Gerr库简介 Golang第三方库 官方仓库:https://github.com/GuoFlight/gerror 特点: 兼容golang原生error库 gerror会自动生成traceID, ...

  3. Bike Sharing Analysis(一)- 探索数据

    1. Bike Sharing Analysis 在这章主要介绍如何分析共享单车服务数据,以及如何基于时间.天气状态特征来识别单车的使用模式.除此之外,我们还会引入可视化分析,假设检验.以及时间序列分 ...

  4. mapreduce的shuffle机制

    1.1 概述: mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle:(从map的输出到reduce的输入) s ...

  5. ubuntu 编译安装ffmpeg

    [前言] 使用apt-get install直接安装的ffmpeg无法提供相应的头文件, 在编译一些使用ffmpeg接口的程序时会提示找不到某某头文件, 于是准备自己编译安装一下ffmpeg. 安装分 ...

  6. 什么是JS执行上下文?

    我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.log('听风是风 ...

  7. 如何让 3D 数字孪生场景闪闪发光

    今日图扑软件功能分享:我们将探讨 HT 系统如何通过分组管理灯光.裁切体和流光,以提高场景光影效果的精准度和整体可控性. HT 中的灯光.裁切体.流光是会影响它所在区域一定范围内的其他节点的表现,如 ...

  8. Solo 开发者周刊 (第3期):如何打造令人惊艳的AI体验

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 Plu ...

  9. 利用FastAPI和OpenAI-Whisper打造高效的语音转录服务

    最近好久没有写博客了,浅浅记录下如何将OpenAI-Whisper做成Web服务吧 介绍 在这篇指导性博客中,我们将探讨如何在Python中结合使用FastAPI和OpenAI-Whisper.Ope ...

  10. [oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华

    编码进化 回忆上次内容 上次 我们回顾了 微软之前的 比尔盖茨和保罗艾伦 mits 迎来的 是帮手 还是隐患? intel-8080 遇到了 mos-6502 底层硬件 驱动 游戏行业进化 不光是扑克 ...