java怎么定义数组,java数组定义的几种方式

提纲:1、方法的概念2、方法语法3、方法使用4、参数5、返回值6、方法的分类7、作业一、数组的概念1.1、为什么使用数组如果说程序中,需要存储大量的相同类型的一组数据,如果直接使用变量来进行存储,每个

提纲:

1、方法的概念2、方法语法3、方法使用4、参数5、返回值6、方法的分类7、作业

一、数组的概念1.1、为什么使用数组

如果说程序中,需要存储大量的相同类型的一组数据,如果直接使用变量来进行存储,每个变量只能存储一个值,就需要大量的变量。1、代码过于臃肿2、程序的可读性差3、数据维护较差

java怎么定义数组

1.2、数组的概念

数组的概念:就是一组相同数据类型的数据。内存上是开辟的连续的内存空间。

1.3、数组的特点?

1、定长。容量固定。数组一旦创建后,那么长度不能更改。(容量,长度,都是指存储的数量)2、存储的数据类型必须都一致。3、在内存中空间连续挨个。4、数组是引用类型的数据,存在栈和堆的地址引用关系。Java中:两大数据类型基本:4类8种引用:数组,对象,集合。。。。

二、数组的使用

1. java中定义一个字符串数组方式如下,string类型和其他基本类型相似,创建数组有两种方式 :String[] str={"AAA","BBB","CCC"};String str[]={"AAA","BBB","CCC"};2.推荐用ArrayList<String> strArray = new 。

2.1、数组的使用

step1:先创建数组step2:使用数组:存储数据,访问数据。

2.2、数组的语法

创建数组的语法:数据类型[] 数组名 = new 数据类型[长度、容量、个数];数据类型 数组名[] = new 数据类型[长度];//也可以使用的语法:数组名[index],操作数组index:因为一个数组存储了多个数据(也叫元素),java数组定义的几种方式,每个元素都有一个下标,也叫索引,index。理解起来就是给每个数据排个编号,固定从0开始,0,1,2,3,4.。。。到长度减1。数组的下标不能超出这个范围。否则就会下标越界:java.lang.ArrayIndexOutOfBoundsException

示例代码:

public class Test1Array{public static void main(String[] args){//1.变量的定义int num = 10;System.out.println(num);​//2.数组/*创建数组:语法格式数据类型[] 数组名 = new 数据类型[容量/长度/个数];​数组是引用类型的数据:a中存储的是数组的实际的地址。*/​int[] a = new int[5];//

内存:存储数据A:栈,存放的是基本数据类型的变量,以及引用类型变量的引用。特点:函数中的变量所占用的空间,执行之后就会销毁。B:堆,存放的是new出来的东西。特点:执行之后,堆里存储的内容(对象等),会被标记为垃圾,但是不会立即被销毁,而是等待系统的垃圾回收机制来回收(GC)。JVM,GC(Grabage Collection)

2.4、数组的长度

获取数组的长度:length,数组的一个属性。数组名.length--->获取这个数组的长度。

2.5、使用循环遍历数组

2.5.1、普通的循环

1、遍历:依次访问数组中每个元素。可以赋值,可以取值。2、因为操作数组,就是数组名字配合下标,而下标固定都是从0开始,到长度减1。for(int i = 0;i < arr2.length;i++){System.out.println(arr2[i]);}

示例代码:

class Test2ArrayFor {public static void main(String[] args) {//定义了一个数组,存储了5个学生的性别。char[] arr2 = new char[5];arr2[0] = &39;;arr2[1] = &39;;arr2[2] = &39;;arr2[3] = &39;;arr2[4] = &39;;​/*System.out.println(arr2[0]);System.out.println(arr2[1]);System.out.println(arr2[2]);System.out.println(arr2[3]);System.out.println(arr2[4]);*/​//借助循环来打印数组:for,while,do-while循环​for(int i = 0;i < arr2.length;i++){//i:0,1,2,3,,5System.out.println(arr2[i]);//arr2[0],arr2[1],arr2[2],arr2[3],arr2[4]}​​System.out.println(arr2.length);//专门用于获取一个数组的长度,5//课堂练习1:定义一个int类型的数组,求该数组中所有元素的总和。​//课堂练习2:统计这个数组中元素的平均值。}}​

2.5.2、for-each循环

示例代码:

public class Test1ForEach{public static void main(String[] args){/*循环的遍历:依次获取里面的每一个元素方法一:一个一个的获取​方法二:普通的循环:for循环​方法三:for-each循环:for(数据类型 变量名 : 数组名){System.out.println(变量名);}​element,元素。数组中存储的数据-->数组的元素。*/​int[] arr = new int[4];arr[0] = 1;arr[1] = 4;arr[2] = 3;arr[3] = 5;//方法一:System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);​//方法二:for(int i=0;i < arr.length;i++){System.out.println(&34; + arr[i]);}​​//方法三:/*index-->0,1,2,3arr--->[1,4,3,5]​工作原理:int e,定义变量e,依次获取数组的元素,赋值给e*/for(int e : arr){//int e = 1;//e = 4;//e = 3;//e = 5;System.out.println(e);}​System.out.println(&34;);​//普通的for循环赋值int[] arr2 = new int[5];//1,3,5,7,9for(int i = 0;i<arr2.length;i++){//i:0,0 1//i:1,2 3//i:2,4 5//i:3,6 7//i:4,8 9arr2[i] = i * 2 + 1;}for(int i=0;i<arr2.length;i++){System.out.println(arr2[i]);}​//通过for-each给数组进行赋值?不能给数组赋值。for(int e : arr2){// int e :1e = 10;//仅仅是给变量e进行赋值,和arr2数组无关。}for(int e : arr2){System.out.println(e);}}}

2.6、数组中的默认值

数组的默认值,就是数组创建后,里面存储的默认的数据。数组的引用存在栈内存中,数组本身存在堆内存中。数组创建完,就有默认的数据了。数组中存储的默认值:数组中是有默认值的整数:0小数:0.0字符:\u0000布尔:false其他:null​

示例代码:

class Test2DefaultValue {public static void main(String[] args) {/*数组中存储的默认值:数组中是有默认值的整数:0小数:0.0字符:\u0000布尔:false其他:null​​arr[i]?1.先根据arr中存储的地址,找到这块堆内存的数组元素。2.找到这块数组内存后,根据i来获取对应的空间*/​int n ;//可能尚未初始化变量nSystem.out.println(n);​int[] arr = new int[5];​for(int i = 0;i<arr.length;i++){System.out.println(arr[i]);//}​String[] arr2 = new String[3];​for(int i = 0;i < arr2.length;i++){System.out.println(arr2[i]);}System.out.println(&34;);}}​

2.7、创建数组的其他语法

*动态创建数组:先创建数组,然后再根据下标一个一个存储数据。A:先

java中定义一个字符串数组方式如下:1.String[] str={"AAA","BBB","CCC"};2.String str[]={"AAA","BBB","CCC"};string类型和其他基本类型相似,创建数组时,有上述两种方式。数组可以分为一维数组和二维数组;一维。

class Test3ArrayCreate {public static void main(String[] args) {//创建方式1:先

Java中的数据分为两大类:基本类型:4类8种操作的都是数值本身引用类型:数组操作的是地址​基本类型进行赋值:数值引用类型进行赋值:地址

示例代码:

class Test4ArrayAddress {public static void main(String[] args) {/*数组:引用类型的数据数组名,存储是引用地址。*/​int[] a = new int[3];System.out.println(a.length);//3System.out.println(a);//a数组的地址System.out.println(a[0]);//0​a[0] = 1;a[1] = 2;a[2] = 3;​int[] b = {4,5,6,7};System.out.println(b.length);//4System.out.println(b);//b的地址System.out.println(b[0]);//4​int[] c = a;//将a的值赋值给c,就是将a存储的数组的地址赋值给c//a和c存储的地址相同,那么就指向了同一个数组System.out.println(c.length);//3System.out.println(c);//a的地址System.out.println(c[0]);//1​c[0] = 100;System.out.println(a[0]);System.out.println(b[0]);System.out.println(c[0]);​​b = c;​b[1] = 200;System.out.println(a[1]);//200System.out.println(b[1]);//200System.out.println(c[1]);//200​System.out.println(&34;);}}​

内存分析:

三、数组在方法中的使用

java中使用 [][] 来定义二维数组,定义数组时也可同时初始化。两种初始化形式:格式1、动态初始化 数据类型 数组名 [ ][ ] = new 数据类型[m][n]数据类型 [ ][ ] 数组名 = new 数据类型[m][n]数据类型 [ 。

3.1、数组作为参数

数组是引用类型:传递的是地址。就是参数也会指向这块内存。当方法结束的时候,参数就销毁了。

class Test5ArrayMethod {​//设计一个方法,用于打印数组public static void printArray(int[] arr){//int[] arr = a;a的地址给了arr,那么arr和 // a指向同一块内存的数组for(int e : arr){System.out.print(e +&34;);}System.out.println();}​public static void main(String[] args) {​int[] a = {1,2,3,4,5};​//设计一个方法,用于打印数组printArray(a);//将a的地址,传递给arrSystem.out.println(&34;);}}

内存分析:

3.2、数组作为返回值

java怎么定义数组

示例代码:

/设计一个方法,用于创建一个数组, 并赋值。数组要返回给调用处public static int[] createArray(int len){int[] arr = new int[len];for(int i = 0;i <arr.length;i++){arr[i] = i * 2;}return arr;}

3.3、可变参数【扩展】

概念:一个方法可以接收的参数的数量不定(0-多个),但是类型固定。​语法:数据类型 ... 参数名,可变参数在方法中当数组使用。​注意事项:1、如果参数列表中,除了可变参数还有其他的参数,可变参数要写在整个参数列表的最后。2、一个方法最多只能有一个可变参数。

示例代码:

class Test6Array {//求一组int类型的数据的和public static void getSum(int ... nums ){int sum = 0;for(int i = 0;i <nums.length;i++){sum += nums[i];}System.out.println(&34; + sum);}​public static void main(String[] args) {/*可变参数:同一种类型的参数,类型固定的,但是个数不固定。​语法的支持:数据类型 ... 参数名​可变参数,类型固定,个数可变。0-多个​在方法中可变参数当数组使用*/​getSum(1,2,3);getSum(1,2,3,4,5,6,7,8,9,10);System.out.println(&34;);}}​

java中使用 [][] 来定义二维数组 定义数组时也可同时初始化 下面是一些例子 float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]。

四、数组的排序

排序:数组是存储一组数据,而且这些数据是有顺序的。但是数值本身可能是无序的。通过算法来实现给数组进行排序,升序(数值从小到大),降序(数值从大到小)。

4.1 冒泡排序

冒泡排序:思路(升序):比较相邻的两个数,较大的数据需要向后移动。长度减1。

1、冒泡排序:Bubble Sort原理:比较相邻的两个数,将较大的数,向后移动。class Test7BubbleSort {public static void main(String[] args) {int[] arr = {15,23,8,10,7};​for(int i= 1; i<arr.length;i++){//控制轮数://i=1,2,3,4/*i=1, j<4i=2, j<3i=3, j<2*/for(int j = 0;j < arr.length - i;j++){if(arr[j] > arr[j+1]){//交换int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}​for(int i = 0;i<arr.length;i++){System.out.println(arr[i]);}​}}​

选择排序:思路(升序):每次找个基准值,定一个变量k表示比较小的值的下标。每轮比较完,都在基准值上放一个比较小数。

4.2 选择排序

示例代码:

package com.qf.array;​public class Test1SelectionSort {​public static void main(String[] args) {/* * 选择排序: 思路: 每一轮找个基准值:在基准值上放一个比较小的数。 ** 定义一个变量k,用于标记比较小的数的下标 */int[] arr = { 15,23,8,10,7 };​for (int i = 0; i < arr.length - 1; i++) {// i = 0,1,2,3,表示轮数// 用于标记本轮中,要找的比较小的值。int k = i;​// 依次比较arr[k]for (int j = k + 1; j < arr.length; j++) {// 比较arr[k]和arr[j],如果arr[k]值大于arr[j]的值,将j赋值给kif (arr[k] > arr[j]) {k = j;}}​// 交换arr[i]和arr[k]// i = 0,第一轮:arr[0],arr[k]// i = 1,第二轮, arr[1],arr[k]// i =2,第三轮,arr[2],arr[k]if (k != i) {int temp = arr[i];arr[i] = arr[k];arr[k] = temp;}}​// 排序后,打印数组for (int e : arr) {System.out.println(e);}​}​}​

五、Arrays工具类

5.1、工具类:Arrays

JDK提供好的类:A:Scanner,读取键盘B:String,字符串C:Math,数学的D:Arrays,提供数组的常规操作的E:System,。。。

在Arrays类中,提供了很多关于数组常用的操作方法。

5.2、数组的复制

就是将一个数组的数据,复制到另一个数值中。

方法一:通过循环,依次复制,将原数组的数据,一个一个,复制到目标数组中方法二:Arrays类里方法:copyOf(原数组,新数组的长度)-->返回值是新数组方法三:System类里的方法:arraycopy(原数组,原数组位置,新数组,新数组位置,拷贝的个数)

示例代码:

package com.qf.array;​import java.util.Arrays;​public class Test3Copy {​public static void main(String[] args) {int[] a = {1,2,3};int[] b = new int[10];//数组的拷贝://方法一:自己通过循环依次复制,吭哧吭哧for(int i=0;i<a.length;i++){b[i] =a[i];}for(int e :b){System.out.println(e);}System.out.println(&34;);//方法二:借助于Arrays类/* * copyOf(int[] 原始数组,int 新数组的长度) * 返回值就是新的数组 **/int[] c = Arrays.copyOf(a,5);//int[] c = {1,2,3,0,0}for(int e:c){System.out.println(e);}System.out.println(&34;);//方法三:借助于System类/* * arraycopy(src,srcPos,dest,destPos,length) * 第一个参数:原始数组 * 第二个参数:从原始数组的哪个下标开始复制 * 第三个参数:目标数组 * 第四个参数:目标数组从哪个下标开始贴 * 第五个参数:拷贝几个数据 *///int[] a = {1,2,3};int [] d = new int[10];System.arraycopy(a,1,d,5,20);for(int e:d){System.out.print(e+&34;);}}​}​

六、二维数组

​维度:dimension数组:存储相同类型的一组数据。一维数组:数组中存储的就是数据了。二维数组:存储的是一维数组。本质也叫数组的数组。也被称为矩阵:行和列的。多维数组。。。

示例代码:

示例代码:

1、给定一个整数数组,例如{2,4,5,6,7,8}和一个数字,例如10,请设计一个方法,找出两个元素,并且使这两个数的和为给定数字,并打印出来。

2、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后再用加5后的数字除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。打印加密后的数字。

java怎么定义数组

3、定义一个数组,存储以下数据:{1,2,3,4,5,6,7,8,9},请查找该数组中,是否存在数字8。

上一篇 2023年02月03 07:58
下一篇 2023年02月03 00:53

相关推荐

  • 怎么看mac地址,电脑Mac地址查询方法

    说到MAC,大多数男性朋友可能都会理解为MAC笔记本,电脑Mac地址查询方法,女性朋友们想到的就是化妆品MAC了吧。但是在工业通信的世界里面,MAC则是作为局域网地址的重要作用存在于工业通信的工作中。

    2023年02月04 272
  • 微信主题怎么设置,微信怎么设置主题皮肤

    对于微信的皮肤主题是可以根据每个人不同的爱好进行设置的,最近呢就上架了一款超级受欢迎的猫和老鼠气泡主题,如果您想要进行更换修改要怎么弄呢,下面小编会带来详细的微信设置更换修改气泡和主题教程。微信设置更

    2023年01月09 238
  • 怎么设置文件夹的密码,不压缩文件夹设置密码

    在电脑中,我们经常使用文件夹来储存各种数据,那么你知道怎么为文件夹设置密码吗?准备工具1、在电脑上找到需要设置密码的文件夹。2、右键单击该文件夹,选择添加到压缩文件。3、在压缩文件夹界面中,选择添加密

    2023年02月04 242
  • 怎样退出微店账号

    在姚新提供的与微店工作人员通话录音中,工作人员表示,微店子账号怎么登陆,“平台已经尽到了监管义务,处罚了店铺,也会限制它后续的交易问题。”且这一结果为平台最终反馈结果。微店没有收取保证金,商家又不配合

    2023年01月06 224
  • 比特币怎么获得,一台电脑挖矿一天能赚多少钱

    比特币价格在经历大跳水之后终于在近期稳定在了三万到四万美元之间,虽然短线震荡态势比较明显,但是整体上价格是趋于稳定的。这种情况也让很多比特币投资者嗅到了投资好时机的味道。那么比特币怎么获得比较方便呢?

    2023年01月13 223
  • 怎样查看微信红包总额,怎样查看别人红包总额

    【摘要】前言春节必不可少的活动就是抢红包啦,从以前的纸质红包到现在互联网红包(以微信红包为首),今天我们就来分析一下抢红包的算法,怎样查看别人红包总额,其中有一些是微信红包的算法,看完你就知道手气最佳

    2023年01月07 246
  • 微信怎样转让群主,为什么微信群主转让失败

    近期,企业微信PC版、App版等迎来了v2.7版本更新,为什么微信群主转让失败,包括连接微信功能升级,新增客户联系功能,成员可用企业微信添加客户的微信并联系;外部群支持群主转让和群聊邀请确认;还有更多

    2023年01月02 211
  • 怎样删除微博头像专辑,微博相册头像专辑怎么删除

    今年9月10日公布的一份刑事判决书显示,2018年9月至2019年3月,任帅等人通过使用话术利用QQ、微信软件发布虚假广告,向不特定大众宣传“牛股、好票”等虚假信息,寻找有意向的炒股客户。在获得客户信

    2023年01月04 269
  • 上传速度慢怎么办,网速测试上传速度很慢怎么办

    在日常工作学习中,我们经常需要制作PPT,网速测试上传速度很慢怎么办,对于初学者来说不够熟练,今天就给大家分享8个高效的PPT制作技巧,帮你提升幻灯片的高级感。01*快速排版目录页目录页你还在手动设计

    2023年01月17 258
  • 怎么开拼多多

    很多人说做拼多多难,其实就是缺乏做店铺的流程。今天给大家分享新手做拼多多店铺的全套流程;第一;新品上架先改10w+销量,非标品只需要改几千就可以了;第二;改完销量做做100个左右的基础销量,具体怎么操

    2023年01月15 201
  • 输入法怎么删除,电脑怎么把多余的输入法删除

    我们都知道win10系统当中自带的微软输入法虽然是内置的,可能对于汉语的文化还不是很了解,以至于很多汉语词组都有很多问题,所以用户想要卸载这个输入法,电脑怎么把多余的输入法删除,那么win10系统微软

    2023年01月15 245
  • qq空间怎么关闭,qq动态小铃铛消息怎么一起删除

    [闽南网]现在QQ的很多用户已经流失到到微信里面来了,QQ已经成为了一种经典,QQ空间慢慢的也没落了,那么怎么关闭QQ空间呢,下面就和小编一起来看看吧!手机怎么关闭QQ空间?关闭qq空间的2种方式首先

    2023年01月09 233
关注微信