Java数组

一维数组
- 声明
语法格式:
数据类型[] 数组名;
数据类型 数组名[];
例:int[] myIntArray; int myIntArray[]; - 创建
语法格式一:先声明后创建
int[] arr;
arr=new int[10];
语法格式二:声明的同时创建数组
int[] arr=new int[10];
注意:数组的长度必须规定 数组会被分配连续的内存空间 - 初始化
声明数组的同时给数组赋值,叫做数组的初始化 - 元素的引用
语法格式:
数组名[下标]; 注意:下标从0开始

- 长度
数组的长度就是初始化时所给数组元素的个数
int[] a={1,2,3,4,5,6,7,8,9,10}
属性length表示数组的长度,如 a.length - 数组的应用
一维数组的应用
循环为整形数组赋值
package com.array;
public class ArrayDemo {
public static void main(String[] args) {
int[] intArray;
String strArray[];
intArray=new int[5];
strArray=new String[10];
float[] floatArray=new float[4];
char[] ch= {'a','b','c','d'};
System.out.println("ch数组的长度为:"+ch.length);
System.out.println("intArray数组的第二个元素为:"+intArray[1]);
System.out.println("strArray数组的第五个元素为:"+strArray[4]);
System.out.println("floatArray数组的第最后一个元素为:"+floatArray[floatArray.length-1]);
for(int i=0;i<5;i++) {
intArray[i]=i+1;
}
System.out.println("整形数组intArray的元素为:");
for(int i=0;i<5;i++) {
System.out.print(intArray[i]+" ");
}
}
}
求数组的累加和
package com.array;
import java.util.Scanner;
public class ArrayDemo1 {
public static void main(String[] args) {
int[] a=new int[5];
Scanner sc=new Scanner(System.in);
for(int i=0;i<a.length;i++) {
System.out.println("请输入第"+(i+1)+"个元素:");
a[i]=sc.nextInt();
}
System.out.print("数组的元素分别为:");
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
int sum=0;
for(int i=0;i<a.length;i++) {
sum=sum+a[i];
}
System.out.println();
System.out.println("数组的元素和为:"+sum);
}
}
求数组中能被3整除的数,并打印输出
package com.array;
public class AarryDemo2 {
public static void main(String[] args) {
int[] a= {1,2,6,12,15,16,17};
for(int i=1;i<7;i++) {
if(a[i]%3==0) {
System.out.println(a[i] );
}
}
}
}
求数组元素的最大值
package com.array;
public class ArrayDemo3 {
public static void main(String[] args) {
int[] a= {34,27,58,97,35,56};
int max=a[0];
for(int i=1;i<a.length;i++) {
if(max<a[i])
max=a[i];
}
System.out.println("数组的最大值为:"+max);
}
}
增强型for循环
- 又叫foreach循环
- int[] arr={1,2,3,4,5};
- for(int n:arr)
- System.out.println(n);
- 把arr数组里的每个元素依次赋值给n,依次输出
冒泡排序
package com.array;
public class SortDemo {
public static void main(String[] args) {
int[] a= {34,53,12,32,56,17};
System.out.println("排序前的的数组元素为:");
for(int n:a) {
System.out.print(n+" ");
}
System.out.println();
int temp;
for(int i=0;i<a.length;i++) {
for(int j=0;j<a.length-1;j++) {
if(a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("从小到大排序输出后的数组元素为:");
for(int n:a) {
System.out.print(n+" ");
}
}
}
总结
注意的问题
- 数组是引用数据类型
- 创建数组时,会开辟连续的内存空间
- 数组长度使用length属性获取
- 数组元素下标从0开始
- 数组下标越界问题