-
2021-10-07 16:06:23
java建立数组和C语言不大一样,比如C语言中建立一个4个位置的一维数组方法:int a[4];再用scanf输入数据就可以,或者在定义的时候就可以赋值 int a[4]={1,22,5,63};申明和创建是一起的
而Java不一样,先申明 int boy[],char cat[][]; 在这里【】里面不能赋值,我们刚刚申明了两个数组 boy 和 cat;再创建数组 boy=int[4];cat=char[4][4];换句话说,申明和创建是分开的;申明之后必须用new运算符分配内存空间
另一种Java创建数组的方法,我个人比较喜欢这种 申明和创建一起完成 int bit[]=new int[4]; float boy[][]=`new float[3][4];
二维数组每一行的长度可以不一样 int a[][]=new [3][];这里每一行的长度没有确定即内存空间没有分配;所以该数组还不能使用;必须在分配内存。
a[0]=new int[5];
a[1]=new int[8];
a[2]=new int[3];
int a[][]={{1},{12,5},{14,25,6},{5},{25,9}}
和C语言不同,Java允许使用int型变量的值指定数组元素的个数:int size=30;
double number=new double[size];
更多相关内容 -
Java创建数组的方法
2022-04-03 21:11:56Java创建数组的方法大致有三种 说明:这里以int为数据类型,以arr为数组名来演示 一、声明并赋值 int[] arr = {1,2,4, …}; 注意这里的花括号不是语句块,而且而且花括号后的分号也不能省,…不是元素意思是可以指定...最近学Java,一点小心得,希望和大家分享一下,第一次写文章,写的不好希望大家谅解,当然我也会尽力写好这篇文章!
Java创建数组的方法大致有三种
说明:这里以int为数据类型,以arr为数组名来演示
一、声明并赋值
int[] arr = {1,2,4, …};
注意这里的花括号不是语句块,而且而且花括号后的分号也不能省,…不是元素意思是可以指定多个元素二、声明数组名开辟空间并且赋值
int[] arr;
arr = new int[]{1,2,3, …};三、声明数组时指定元素个数然后赋值
int[] arr1= new int[3];
注意:最大元素下标为2,并且所有的元素值均为0
赋值一般用for循环四、在以上的基础上创建多维数组
- int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; //每个子数组元素个数不要求均相同
- int[][] arr = new int[m][n]; //其中n可以省略,在创建的时候可以指定
- int[][][] arr = new int[m][n][q]; //同样其中n、q可以省略
总结
- 无论那种方法声明必须有 :数据类型 [ ] , 如:int[ ]
- 创建多维数组时,new后面的第一个方括号中的元素数量总不能省略
- “new 数据类型[]{}”创建数组时,其中花括号可以省去,但要在“[ ]”中填写数组的个数
各个创建数组的方法使用演示如下
方法一:
int[] arr2 = {10,20,30}; for(int element:arr2) { System.out.print(element+" ");//其中 " " 是换行 }
输出结果:
10 20 30
方法二:
char[] arr4 ; //char型输入时要用单引号(')引着! arr4 = new char[] {'a','b','c'}; for(char element:arr4) { System.out.print(element + " "); }
输出结果:
a b c
方法三:
int[] arr = new int[10]; //换成i<10 或i<=9 因为 arr[10]不存在 强行调用会出错(溢出)! for(int i = 0;i<=9;i++) { arr[i]=i; System.out.print(arr[i]+" "); }
输出结果:
0 1 2 3 4 5 6 7 8 9
方法四
1. int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 矩阵形式输出为: 1 2 3 4 5 6 7 8 9 1. int[][] arr = new int[m][n]; 在赋值时使用for循环 for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ arr[i][j] = int值; } } 若声明时省略n,赋值时须在内层循环中生成新一维数组 for(int i=0;i<m;i++){ arr[i] = new int[数量]; }
二维以上的数组使用的不多,又因为使用方法同二维基本相同,所以在这里就不再演示了。
内容扩展
1. for each语句(增强性for循环)
用于对数组或实现Iterator接口的列表(ArrayList、LinkedList)集合(Set)等容器对象进行遍历。
格式:
for (数据类型 : emelent){ System.out.println(emelent); }
应用代码:
int[] arr2 = {10,20,30}; for(int element:arr2) { System.out.print(element+" "); }
运行结果:
10 20 30
2.length属性 与 length()方法
二者区别:
- length属性是针对Java中的数组来说的,要求数组的长度可以用其length属性
- length()方法是针对字符串来说的,要求一个字符串的长度就要用Java的length()方法
- Java中的size()方法是针对泛型集合(Set)或列表(List)说的,如果想看这个泛型容器中有多少元素,就调用此方法
应用代码:
for(int i=0;i<arr5.length;i++) { arr5[i]=i; }
3.Arrays的toString方法
作用: 将数组的元素生成字符串,数组的各个元素使用方括号括着 [ ]
格式:Arrays.toString(数组名称)
注意: 此方法不能用于直接获得二维数组
应用代码:int[] arr = {111,222,333}; System.out.println(Arrays.toString(arr));
运行结果:
[111, 222, 333]
希望以上对大家有帮助!
想了解作者更多,请移步我的个人网站,欢迎交流、留言~
极客技术空间:https://elltor.com/ -
Java数组 (一) 创建数组及数组的简单使用
2022-04-09 21:15:23什么是数组1.1 数组的定义1.2 数组的创建与初始化1.2.1数组的动态初始化1.2.2 数组的静态初始化1.3 数组的使用1.3.1 获取一个数组的长度(最多保存的元素个数)1.3.2 如何访问数组元素1.3.3 遍历数组中的每个元素 数组...引言:
我们之前创建两个整型变量可以用
int a = 10;int b = 20;
创建4个整型变量,也可以一行行定义变量,
假设我现在要一次性创建 1w 个整型变量,这种时候我们就需要用到数组这个结构了~
文章目录
数组
引言:
我们之前创建两个整型变量可以用 int a = 10;int b = 20;
创建4个整型变量,也可以一行行定义变量,
假设我现在要一次性创建 1w 个整型变量,这种时候我们就需要用到数组这个结构了~
1.什么是数组
1.1 数组的定义
数组本质上就是让我们能"批量"创建相同类型的变量.
一次性定义N个数据类型相同的变量,我们把这种结构称之为数组
1.2 数组的创建与初始化
数组的初始化方式有两种:分别为数组的动态初始化,和数组的静态初始化
1.2.1数组的动态初始化
例:第一种动态初始化方法
//数据类型[] 数组名称 = new 数组类型[] {初始化数据}; ps:初始化数据可选 int[] arr = new int[] {1,2,3,4,5}; //在创建数组时,每个元素同时赋值.
第二种动态初始化方法
//数据类型[] 数组名称 = new 数据类型[num]; num指当前数组元素的最大个数 int[] arr = new int[5] //在创建数组时,若没有使用来初始化每个元素的值,每个元素都是该数据类型的默认值(0) //可以理解为 int[] arr = new int[] {0,0,0,0,0};
1.2.2 数组的静态初始化
例:
//数据类型[] 数组名称 = {初始化数据}; int[] arr = {1,2,3,4,5};
这种写法是Java中的一种语法糖(语法糖∶只存在编译期之前的语法,编译器为了方便程序员简化写法),在 javac 编译之后,就会变成动态初始化的写法
上图是编译之前写法
下图是编译之后写法
1.3 数组的使用
1.3.1 获取一个数组的长度(最多保存的元素个数)
使用数组名称.length
int[] arr = new int[5];//长度就是5,我如何拿到这个5呢
arr.length;
int[] arr1 = new int[] {1,3,5,7,9};//长度也是5,
arr1.length;
int[] arr = new int[5]; int length = arr.length; System.out.println(length); //执行结果均为 5
1.3.2 如何访问数组元素
使用 -> 数组的名称[元素的索引]
//数组的索引从0开始,最后一个元素的索引是 arr1.length - 1
例如: 要获取数组的第一个元素
int[] arr = new int[5]; //用 arr[0]; 获取第一个数组元素
注意:
如果访问了一个数组索引并不存在的元素会咋样?
1.3.3 遍历数组中的每个元素
数组的遍历分有两种方法
方法一:用循环遍历数组
int[] arr1 = new int[]{1,2,3,4,5}; for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i] + ","); }
注意:
arr[i] 确实拿到了每个数组的元素
此处的 i 表示数组中每个元素的索引下标,可以修改数组中对应元素的值
方法二:用foreach方法遍历数组
for (int i:arr1) { System.out.print(i + ","); }
注意:
此处的 i 指的是从数组的第一个元素开始取值,第一次把第一个元素的值复制一份给 i ,第二次循环把第二个元素的值复制一份给 i ,依次类推,直到整个数组都遍历结束.
只能读取数组的元素值,无法修改.
i 是每个数组元素的值的拷贝,不是实实在在的数组元素,无法修改数组的元素值.
-
Java数组的定义和使用
2021-02-12 08:58:48Java 中定义数组的语法有两种:type arrayName[];type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。例如:...Java 中定义数组的语法有两种:
type arrayName[];
type[] arrayName;
type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。例如:
int demoArray[];
int[] demoArray;
这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习惯选择。
与C、C++不同,Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度。而且对于如上定义的一个数组是不能访问它的任何元素的,我们必须要为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=new type[arraySize];
其中,arraySize 为数组的长度,type 为数组的类型。如:
demoArray=new int[3];
为一个整型数组分配3个int 型整数所占据的内存空间。
通常,你可以在定义的同时分配空间,语法为:
type arrayName[] = new type[arraySize];
例如:
int demoArray[] = new int[3];
数组的初始化
你可以在声明数组的同时进行初始化(静态初始化),也可以在声明以后进行初始化(动态初始化)。例如:
// 静态初始化
// 静态初始化的同时就为数组元素分配空间并赋值
int intArray[] = {1,2,3,4};
StringstringArray[] = {"微学苑", "http://www.weixueyuan.net", "一切编程语言都是纸老虎"};
// 动态初始化
float floatArray[] = new float[3];
floatArray[0] = 1.0f;
floatArray[1] = 132.63f;
floatArray[2] = 100F;
数组引用
可以通过下标来引用数组:
arrayName[index];
与C、C++不同,Java对数组元素要进行越界检查以保证安全性。
每个数组都有一个length属性来指明它的长度,例如 intArray.length 指明数组 intArray 的长度。
【示例】写一段代码,要求输入任意5个整数,输出它们的和。
import java.util.*;
public classDemo {
public static void main(String[] args){
int intArray[] = new int[5];
long total = 0;
int len = intArray.length;
// 给数组元素赋值
System.out.print("请输入" + len + "个整数,以空格为分隔:");
Scannersc = new Scanner(System.in);
for(int i=0; i
intArray[i] = sc.nextInt();
}
// 计算数组元素的和
for(int i=0; i
total += intArray[i];
}
System.out.println("所有数组元素的和为:" + total);
}
}
运行结果:
请输入5个整数,以空格为分隔:10 20 15 25 50
所有数组元素的和为:120
数组的遍历
实际开发中,经常需要遍历数组以获取数组中的每一个元素。最容易想到的方法是for循环,例如:
int arrayDemo[] = {1, 2, 4, 7, 9, 192, 100};
for(int i=0,len=arrayDemo.length; i
System.out.println(arrayDemo[i] + ", ");
}
输出结果:
1, 2, 4, 7, 9, 192, 100,
不过,Java提供了”增强版“的for循环,专门用来遍历数组,语法为:
for( arrayTypevarName: arrayName ){
// Some Code
}
arrayType 为数组类型(也是数组元素的类型);varName 是用来保存当前元素的变量,每次循环它的值都会改变;arrayName 为数组名称。
每循环一次,就会获取数组中下一个元素的值,保存到 varName 变量,直到数组结束。即,第一次循环 varName 的值为第0个元素,第二次循环为第1个元素......例如:
int arrayDemo[] = {1, 2, 4, 7, 9, 192, 100};
for(int x: arrayDemo){
System.out.println(x + ", ");
}
输出结果与上面相同。
这种增强版的for循环也被称为”foreach循环“,它是普通for循环语句的特殊简化版。所有的foreach循环都可以被改写成for循环。
但是,如果你希望使用数组的索引,那么增强版的 for 循环无法做到。
二维数组
二维数组的声明、初始化和引用与一维数组相似:
int intArray[ ][ ] = { {1,2}, {2,3}, {4,5} };
int a[ ][ ] = new int[2][3];
a[0][0] = 12;
a[0][1] = 34;
// ......
a[1][2] = 93;
Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。例如:
int intArray[ ][ ] = { {1,2}, {2,3}, {3,4,5} };
int a[ ][ ] = new int[2][ ];
a[0] = new int[3];
a[1] = new int[5];
【示例】通过二维数组计算两个矩阵的乘积。
public classDemo {
public static void main(String[] args){
// 第一个矩阵(动态初始化一个二维数组)
int a[][] = new int[2][3];
// 第二个矩阵(静态初始化一个二维数组)
int b[][] = { {1,5,2,8}, {5,9,10,-3}, {2,7,-5,-18} };
// 结果矩阵
int c[][] = new int[2][4];
// 初始化第一个矩阵
for(int i=0; i<2; i++)
for(int j=0; j<3 ;j++)
a[i][j] = (i+1) * (j+2);
// 计算矩阵乘积
for (int i=0; i<2; i++){
for (int j=0; j<4; j++){
c[i][j]=0;
for(int k=0; k<3; k++)
c[i][j] += a[i][k] * b[k][j];
}
}
// 输出结算结果
for(int i=0; i<2; i++){
for (int j=0; j<4; j++)
System.out.printf("%-5d", c[i][j]);
System.out.printlnwww.ymzxrj.com();
}
}
}
运行结果:
25 65 14 -65
50 130 28 -130
几点说明:
上面讲的是静态数组。静态数组一旦被声明,它的容量就固定了,不容改变。所以在声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。
如果想在运行程序时改变容量,就需要用到数组列表(ArrayList,也称动态数组)或向量(Vector)。
正是由于静态数组容量固定的缺点,实际开发中使用频率不高,被 ArrayList 或 Vector 代替,因为实际开发中经常需要向数组中添加或删除元素,而它的容量不好预估。
-
java数组排序方法
2021-12-14 19:28:50java数组中内容的2种排序方法 -
java的数组创建的几种方式
2019-03-20 15:40:03`public class Shuzu{ public static void main(String[] args) { //第一种 例: String[] test1 = new String[6]; test1[0] = “数组0”;... String[] test2 = {"数组0","数组1","数组2","...."... -
java中创建数组的四种方法
2021-10-12 19:36:31//创建数组的第一种方法 int[] arr=new int[6]; //通过创建对象的方法来声明一个数组对象 int intValue=arr[5]; //获取arr数组中第五号元素的值 //System.out.println(intValue); 方法二: 详情见注释 //创建... -
java 中数组的创建 数组遍历 以及数组的输出(打印)
2021-01-24 21:45:29什么是数组? 如果我们需要创建一个 int 类型变量,那么我们只需要 int a; 如果我们需要创建五个 int 类型变量,那么我们只需要int a1;...java中数组的创建 很多同学都是从C语言开始接触编程的,C语言中 -
Java--数组概述 & 数组创建和声明 & 数组使用 & 多维数组
2021-07-29 15:17:101. 数组概述 数组的定义: 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一...数组本身就是对象,Java -
java 反射数组
2021-02-25 19:22:50反射中可能用到的两个比较特殊的类型,数组和枚举,分别对应java.lang.reflect.Array和java.lang.Enum,后者其实并不是反射类库包中的类,但是反射的基础类库里面有使用枚举类型的方法数组数组是由Java虚拟机实现(这... -
Java创建数组的几种方式
2022-04-19 11:48:07本文主要以一维数组为例,讲解Java创建数组的三种方式。 一、先声明再初始化 String []a = new String[length]; a[0]=?......;//再赋值 二、声明的同时初始化 String []a = new String[]{a,b,...}; 三、不用new... -
Java构建乘积数组的方法
2020-08-26 06:51:16主要为大家详细介绍了Java构建乘积数组的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
java中数组的创建、删除、增加元素
2022-03-07 10:43:53创建一个数组arry=1,2,3,4,5,6,7,8,9 2.对数组arry增加元素10; 3.删除数组arry的第二个元素 /* 1.创建一个数组为1,2,3,...,9 2.添加元素10 3.删除第二个元素 */ public class arry { public static... -
Java 建立数组对象并调用生成.jsp文件是干什么的?
2018-04-08 00:31:32编写了两个源程序,主程序调用次程序中封装的方法(函数)模块,在主程序中将次程序中的类 对象化, 调用结束后生成“次程序.jsp”文件,这个是干嘛的...数组对象建立是跟着黑马程序员的教学视屏敲的,他生成的.class。 -
Java动态数组的用法详解
2021-02-12 09:09:36Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。1.语法:add()是添加一个新的元素... -
Java对象数组相互覆盖
2021-02-26 10:59:34我有三个类Main,Process和Employee。我的问题是,最后一个对象数组总是...Java对象数组相互覆盖public class Main {public static void main(String args[]){Process p = new Process();p.setEmployeeList(p.gener... -
java数组
2021-03-06 01:07:34数组的定义数组是引用数据类型三种当中的其中一种。概念:同一种类型数据的集合。其实数组就是一个容器。数组的好处:可以自动给数组中的元素从0开始标号,方便操作这些元素。格式1:元素类型[] 数组名= new元素类型... -
JAVA中数组的创建和使用
2021-10-31 09:56:10JAVA中数组的创建和使用一、一维数组的创建和使用1.创建一维数组2.使用一维数组二、二维数组的创建和使用1.创建二维数组2.使用二维数组 一、一维数组的创建和使用 1.创建一维数组 1)先声明,再用new运算符进行内存... -
Java byte数组与十六进制字符串互转
2021-03-01 10:46:511 /**2 * reference apache commons http://commons.apache.org/codec/4 *5 *@authorAub6 *7 */8 public classHex {910 /**11 * 用于建立十六进制字符的输出的小写字符数组12 */13 private static final char[] ... -
将HashSet中的元素转换为Java中的数组
2021-03-01 07:20:09以下是将HashSet中的元素转换为数组的示例- 示例import java.util.*; public class Demo { public static void main(String args[]) { //创建一个哈希集 HashSet hs = new HashSet(); //将元素添加到... -
Java中数组的两种查找 / 检索方法(遍历和二分法查找)
2021-11-05 10:59:10Java中数组元素查找的两种方法: 1.一个一个挨着找,直到找到为止。 代码: public class Array02 { public static void main(String[] args) { // 这个数组已经排序的。 int[] arr = {100,200,230,235,... -
java输入数组结果出现乱码怎么处理
2021-03-11 15:22:11如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码。修改默认编码:在菜单导航栏上Window-->Preferences 打开"首选项"对话框,左侧导航树,导航到 General... -
Java实现数组的动态扩容
2021-07-12 00:28:39因此我们需要进行动态扩容:新建立一个新数组,扩充一个能够存储我们需要的数据的长度,最好超过它。然后将原数组的数据复制给新数组,然后再将新数据继续存储到新数组中,最后将原数组名称等于新数组即可。由于原... -
如何用Java创建一个数组?
2021-03-07 22:23:50在Java中,可以使用new关键字像对象一样创建数组。使用new关键字在Java中创建数组的语法-type[]reference=newtype[10];哪里,type是数组元素的数据类型。reference是保存数组的引用。而且,如果您想通过使用索引对... -
java使用数组来存储学生基本信息
2021-11-17 23:01:47package com.jre.java.se; import java.util.Scanner; public class Test3 { public static void main(String [] agrs) { ...//创建学生数组 System.out.println("输入学生数目"); int n =sc.nextInt(); Syste. -
java基于数组构建二叉树_如何构建基于Java的云应用程序
2020-05-15 11:35:52java基于数组构建二叉树 最近,我们受命开发用于大数据分析的SAAS应用程序。 要进行数据挖掘,系统需要在数据库中存储数十亿个公共职位,并对其进行分类处理。 在我们的上下文中,分类是一个缓慢的,占用大量资源... -
Java多维数组和锯齿数组
2021-03-22 08:19:41示例可以定义一个具有多个维的数组。通过提供每个维度的索引来访问多维数组,而不是通过提供单个索引来访问。多维数组的声明可以通过[]为每个维添加常规数组decle来完成。例如,要制作二维int数组,请在声明中添加另... -
Java:数组排序输出
2021-11-20 09:57:54问题:编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出 代码: package com.company; import java.util.Scanner; public class Main { public static void ...