Java(2):数组(1)

Java学习笔记2.6.1 数组 - 一维数组 1. 理解为何要引入数组; 2. 了解数组的分类; 3. 掌握一维数组遍历; 4. 掌握求一维数组最值; 5. 掌握一维数组排序 阅读详情

日期:2017/10/10

一、Java数组的相关知识

1.1  一维数组


(1)数组:存储同一种数据类型的多个元素的集合,每个元素都有编号,从0开始,最大编号是数组的长度-1
(2)数组的格式:
        A:数据类型[] 数组名;
        B:数据类型 数组名[];
(3)数组的初始化:
        A:动态初始化 只给长度,不给元素
                int[] arr = new int[3];
        B:静态初始化 不给长度,给元素
                int[] arr = new int[]{1,2,3};
                简化版:int[] arr = {1,2,3};
(4)java中的内存分配
        A:栈 存储局部变量
        B:堆 new出来的
        C:方法区
        D:本地方法区
        E:寄存器
(5)两个常见小问题
        A:数组越界
        B:空指针异常
(6)数组常见操作 获取数组长度:数组名.length
        A:数组遍历
        B:获取最值
        C:数组反转
        D:查表法
        E:查找指定元素第一次出现的索引

练习代码:


package com.java.myself;

import java.util.Scanner;

public class ArrayTest {
	public static void main(String[] args){
		int[] arr = {1,2,3,4,6,5,7,8};
		String[] strarray = {"","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
		
		//查表法
		Scanner sc = new Scanner(System.in);
		System.out.println("Please input num(1-7): ");
		int index = sc.nextInt();
		System.out.println("Your searching date is: "+ strarray[index]);
		
//		printArray(arr);
//		getMax(arr);
//		reverse(arr);
		int index1 = indexOfArray(arr,8);
		System.out.println(index1);
	}
	public static void printArray(int[] arr) {
		System.out.print("[");
		for (int i=0; i<arr.length; i++) {
			if (i <= arr.length-1) {
				System.out.print(arr[i] +", ");
			}
			System.out.print(arr[i]);
		}
		System.out.println("]");
	}

	//最值
	public static int getMax(int[] arr) {
		int max = arr[0];
		for (int i=0; i<arr.length; i++) {
			if (arr[i] > max) {
				max = arr[i];
			}
		}
		return max;
	}
	public static void reverse(int[] arr){
		for (int start=0,end=arr.length-1; start<=end; start++,end--){
			int temp = arr[start];
			arr[start] = arr[end];
			arr[end] = temp;
		}
		int i = 0;
		while(i<arr.length){
			System.out.println(arr[i]);
			i++;
		}
	}
	public static int indexOfArray (int[] arr,int key){
		int index = -1;
		for (int i=0; i<arr.length; i++){
				if (arr[i] == key){
					index = i;
				}
		}
		return index;
	}
	
}





1.2 二维数组


(1)二维数组:元素是一维数组的数组。
(2)格式:
A:数据类型[][] 变量名 = new 数据类型[m][n];
B:数据类型[][] 变量名 = new 数据类型[m][];
C:数据类型[][] 变量名 = new 数据类型[][]{{元素...},{元素...},{元素...}};
  数据类型[][] 变量名 = {{元素...},{元素...},{元素...}};
(3)常见操作:
A:数组遍历
B:求和案例

练习代码:

package com.test;

public class TwoDemension {
	public static void main(String[] args){
		int[][] arr = new int[3][2];
		System.out.println(arr);//[[I@7d3598c3
		System.out.println(arr[0]); //[I@57125f92
		System.out.println(arr[2]);
		System.out.println(arr[1]);
		System.out.println("***********");
		
		int [][] arr1 = new int[3][];			
		System.out.println(arr1);//[[I@7d3598c3
		System.out.println(arr1[0]);//null
		System.out.println(arr1[2]);//null
		System.out.println(arr1[1]);//null
/*
 * 从输出log可以看到,当二维数组没有声明二维元素数量时,内存并未分配相应的
 * 空间,当二维元素确定数量后,首地址便会被分配,即Java的堆内存。
 * */
		
		arr[0] = new int[3];
		arr[1] = new int[1];
		arr[2] = new int[2];
		
		System.out.println(arr[0]);
		System.out.println(arr[2]);
		System.out.println(arr[1]);

		arr[2][1] = 100;
		arr[0][2] = 200;
		
		System.out.println(arr[0][2]);
		System.out.println(arr[2][1]);
		System.out.println("***********");
				
		Demo demo = new Demo();
		demo.test(null);
	}

}

class Demo{
	public static void test(String[] args){
		/*
		 * 当初始化时直接分配变量时,内地址也会分配,跟第一个情况一样。
		 * */
		int [][] arr = {{4,5,6},{5,5,5,6},{5,4}};
		System.out.println(arr);
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);
	}
}

输出情况:

[[I@15db9742
[I@6d06d69c
[I@7852e922
[I@4e25154f
***********
[[I@70dea4e
null
null
null
[I@5c647e05
[I@33909752
[I@55f96302
200
100
***********
[[I@3d4eac69
[I@42a57993
[I@75b84c92
[I@6bc7c054

END.

医学图像处理(一)使用U-Net进行MRI的肝脏分割 医学图像处理(一)使用U-Net进行MRI的肝脏分割数据集搜集训练集和测试集划分问题一: 测试集不包括GroundTruth问题二:T1和T2的数据能一起训练吗?问题三: T1的图像在文件夹中分成了InPhase和OutPhase,这个有什么区别?分离出肝脏将dicom文件转换为png格式数据增强U-net网络搭建自定义DatasetMain.py实验结果总结 图像分割小白一枚,之前接到一个MRI图像肝脏分割的任务。对于医学图像分割,第一想到的就是Unet. Unet在2015的MICCAI上首次提出,在医 阅读详情

相关推荐

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现

3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理...

qq_40013290的博客 881

Java 反射机制

什么是反射: 对于任何一个类,我们都能知道他有哪些方法。对于任何一个对象我们都可以调用他的任意一个方法和属性,这种动态的获取信息以及动态的调用对象的方法就称为java的反射机制。形象一点说,任何一个类或者对象,对我们来说都是透明的,想要啥直接拿就可以。 首先列出我们要反射的类: public class Person { int age; String name; private St...

345丶 209

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 466

一些学习中遇到的问题整理

附上自己学习过程中的思维导图:http://pan.baidu.com/s/1c2FS74W 1.数组打印        int []num = {1,2,3,4,5}; System.out.println(num.toString()); //输出:[I@15db9742 System.out.println(Arrays.toString(num)); //输出:[1,

qq_33343480的博客 2437

嵌入式面试|MCU+RTOS技术栈——面试八股文整理3:STM32

stm32

weixin_44800059的博客 1901

无刷直流电机矢量控制(四):基于滑模观测器的无传感器控制

无刷直流电机矢量控制,采用转速、电流双环控制,电流环dq解耦,d轴采用id=0控制,q轴采用转速外环。采用滑模观测器(SMO),根据电压电流信息进行电机位置角度动态估算,模型可直接运行,转速和角度跟踪精度较高。 本文整理了该方法的基本原理,介绍了在MATLAB/Simulink中的建模和仿真过程,最后附上完整的模型文件。 一、基本原理 滑模观测器(下文简称SMO)是基于滑模变结构控制方法的一种状态观测器。其针对无刷直流电机转子位置估算的实现过程如下。 假设采用矢量控...

Forster-C的博客 6865

Java二维数组及其拷贝方式详解

一、二维数组定义方式 //规则数组 int[][]array=new int [2][3];//二维数组定义 int[][]array1={{1,2,3},{4,5,6}}; int[][]array3=new int[][]{{1,2,3},{4,5,6}}; //不规则数组 int[][] array4 = new int[2][]; array4[0...

2145

RK3566/RK3588 NPU性能实测:用mobilenet模型快速验证你的开发板NPU是否正常工作

本文提供了RK3566/RK3588开发板NPU性能实测指南,通过MobileNet模型快速验证NPU是否正常工作。详细介绍了环境搭建、测试资源获取、编译运行及结果分析的全流程,帮助开发者高效验证神经网络加速器功能,为后续AI应用部署奠定基础。

weixin_28826521的博客 447

第二周学习记录之数组

一维数组 概念:是一种"容器",可以存储同一类型元素的容器. 定义: 数据类型[] 数组名称 数据类型 数组名称[] 数组的初始化: 动态初始化:开发者定义数组初始化的时候,指定数组的长度,系统默认给数组中的元素赋值. 静态初始化:直接指定数组的元素内容,系统指定的数组长度 数组的动态初始化 数据类型[] 数组名称 = new 数据类型[数组长度] ; 数据类型 数组名称[] = new 数据类型[数组长度] ; 举例: 定义一个数组并且动态初始化 int[] arr = new i

weixin_48340270的博客 219

大疆智图002:大疆智图倾斜摄影建模流程

本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。

qq_31762031的博客 1万+

RLC电阻电容电感基础知识——电感篇

电感 等效电路 电感线圈由铜导线绕制,等效电路如图所示。 寄生电阻RS,包括了绕线电阻、引脚串联电阻以及磁芯损耗电阻三部分组成,其中绕线电阻与线径、长度、铜线电阻率有关;引脚电阻与引线长短、粗细有关;磁芯损耗电阻与磁芯材料特性有关,显然磁芯损耗电阻还与工作频率有关.寄生电容C主要是绕线圈与圈之间的杂散电容(为PF级),与绕线工艺有关。 等效导纳 显然: (1)当角频率ω(频率f)较小时,呈电感性. (2)当角频率ω等于ω0时,导纳Y虚部为0,呈现电阻性,即发生共振。令导纳Y虚部为0,即可求出共振角频率ω

azj2019的博客 1万+

面试笔试

1.数组打印        int [] num = {1,2,3,4,5}; System.out.println(num.toString()); //输出:[I@15db9742 System.out.println(Arrays.toString(num)); //输出:[1, 2, 3, 4, 5] int [][]nums = {{1,2},{3,4,5},{6,

qq_33343480的博客 479

基于 Qt C++ 的战术通信终端

logMessage(QString("新客户端连接来自: %1:%2").arg(incomingTcpSocket->peerAddress().toString()).arg(incomingTcpSocket->peerPort()));logMessage(QString("服务器已启动,在 [%1]:%2 监听IPv6连接...").arg(ui->lineEditAddress->text()).arg(port));

寒寒豆豆软件公司的博客 77

java将数组1复制给数组2

【代码】java将数组1复制给数组2。

weixin_74451863的博客 592

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java数组存在,java:检查数组2中是否存在数组1中的任何元素

I am fairly new to java streams and wonder whether there is an easy solution using java streams to check if any element in array 1 is also present in array 2example:array1 =["banana","apple","cat"]ar...

weixin_39559750的博客 220

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java创建数组arr1和arr2,将数组arr1中的索引0-3中的元素复制到arr2中。

package javase6; import java.util.Arrays; public class Javase6_1 { public static void main(String[]args){ int arr1[]=new int[]{1,2,3,4,5,6,7,8,9,10}; int arr2[]= Arrays.copyOfRange(arr1,0,3); //索引0-3中的元素进行复制 for (int i=1.

程序研博客 2086

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java-经典代码题-1、给定两个整型数组, 交换两个数组的内容.2、给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面.

1、给定两个整型数组, 交换两个数组的内容. package gyy; import java.util.Arrays; public class Main{ public static void main(String[] args) { int arr1[]= {9,8,7,6,5,4,3,2,1}; int arr2[]= {1,2,3,4,5,6,7,8,9}; int te...

weixin_44378053的博客 445

2.1Java数组

文章目录一维数组数组的概念数组的定义数组的初始化动态初始化静态初始化数组的注意事项数组的遍历冒泡排序冒泡排序原理冒泡排序效果示例代码多维数组 在Java中,如果想要保存多个相同类型的值,我们就要使用个数组,例如:保存几本自己喜欢的书,如果使用基本数据类型的话,在数据量大的情况下就非常不方便使用。 一维数组 数组的概念 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据类型。 数组一旦初始化,长度不可变。长度确定下来了!!! 数组的定义 一维数组的声

c12312303的博客 306

java练习:在main方法中声明arr1和arr2两个变量它们是int[]类型的数组 arr1初始化8元素:2,3,5,7,11,13,17,19 显示arr1的内容 赋值arr2变量等于arr

java练习:在main方法中声明arr1和arr2两个变量 它们是int[]类型的数组 arr1初始化8元素:2,3,5,7,11,13,17,19 显示arr1的内容 赋值arr2变量等于arr1变量,修改arr2中的偶索引元素,使其等于索引值(例如arr[0]=0,arr[2]=2) 打印出arr1的内容 思考:arr1和arr2的关系:arr1和arr2的地址值相同,都指向堆空间的一个数组实体

weixin_45807650的博客 247

01、java04-数组 1维 2维

1、数组 --这里默认二维数组为最高,更高维度的数组不是不可以,而是就好比是多层循环没有价值 --数组定义:固定长度的容器 1、数据类型[][]... 数组名 = new 数据类型[num][num]... --int[][] a = new int[3][4]; --int[] b = new int[12]; --对于多维数组,其length是指第一维长度 --这种需要给定数组大小,不赋值 2、数据类型[][].

weixin_41097516的博客 168

Java-数组练习-1.将整型数组转换成字符串;2.实现一个方法 copyOf, 对一个整型数组拷贝, 得到一个新的数组;3.给定一个有序整型数组, 实现二分查找

1.实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 “[1, 2, 3]”, 注意 逗号 的位置和数量. package gyy; public class yinger1{ public static void main(String[] args) { int[] arr={1,2,3,4}; System...

weixin_44378053的博客 354

1-6 Java数组2

可变参数是定义在方法参数列表总一种形式,这个参数类型的定义有一个特殊方式必须使用**【…】**,一个方法中的可变参数有且仅有一个,必须出现在所有定义参数的末尾可变参数是一个比较好使用参数定义,既然是可变就意味着【什么都不传 或 传多个】,在方法体的内部对可变参数的操作是以一维数组从形式操作。

WilsonDone的博客 257

剑指offer试题编程练习1-2(java) 二维数组&字符串数组

1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:找一个二维数组中中间大小的值与输入的目标值进行比较,通过比较大小移动二维数组的索引,选取的是右上角的元素作为比较的对象。 public class Solution { ...

远方其实没那么远 234

【java】定义数组int arr2[arr.length + 1];这样是不允许的

需要:int[ ] arr2 = new int[arr.lenth + 1]

qq_39921135的博客 107

1·数组 2·java的内存:栈,3·堆 方法

简化格式:int[] array ={11,22,33};public static 返回值类型 方法名(参数){方法体;return 返回值;public static void 方法名( ){方法体;调用:方法名();public static void 方法名(int(类型) 变量名······){方法体;调用:方法名(参数1,参数2,······)例如:方法名(10,20);例如:方法名(变量1,变量2);public static 返回值类型 方法名(参数){方法体;

Wyc72409的博客 1281

编写java程序,创建数组arr1和arr2,将数组arr1中的索引是0~3中的元素复制到数组arr2中去,最后将数组arr1和arr2中的元素输出。

【题目要求】:编写java程序,创建数组arr1和arr2,将数组arr1中的索引是0~3中的元素复制到数组arr2中去,最后将数组arr1和arr2中的元素输出。 【分析】:主要考察数组的方法Arrays.copyOfRange() 【代码实现】: public class Test { public static void main(String[] args) { ...

The_Best_Hacker的博客 6281
上一篇: Java(1):方法重载(1)
下一篇: shell(2):基础,9*9乘法表
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值