【6】Java数组之一维数组
一、数组概念
定义:数组是相同类型的数据按顺序组成的一种引用类型数据
要学习的内容:
一维数组 - 声明 - 创建 - 初始化 - 元素的引用 - 长度 - 数组的应用
1. 数组声明
1)数据类型[] 数组名; --常用形式
2)数据类型 数组名[];
3)举例
int[] arr;
int arr[] ;
char[] ch;
String[] ch;
2. 数组创建
1)格式一:先声明后创建
数据类型[] 数组名;
数组名 = new 数据类型[数组长度];
举例:
int[] arr;
a = new int[10]; // 创建一个长度为10的整型数组
2)格式二:声明的同时创建数组
数据类型[] 数组名 = new 数据类型[数组长度];
举例:
int[] a = new int[10]; // 注意:数组长度必须指定!
3. 数组的存储
在内存中的存储 数组在内存中会被分配连续的内存空间。
举例:
int[] a = new int[10];//10个连续的内存空间,int类型每个值默认都是0。
4. 数组的初始化
定义:声明数组的同时给数组赋值,叫做数组的初始化。new不叫初始化,叫创建对象。
举例:
int[] a = {1,2,3,4,5,6,7,8,9,10};
5. 数组元素的引用
1)语法格式:
数组名[下标]
2)注意:数组下标从0开始
举例:
int[] a = {1,2,3,4,5,6,7,8,9,10};
a[0] =1;a[1]=2;a[2]=3;a[3]=4;
6. 数组长度
1)定义:数组长度就是数组元素的个数;
2)求数组长度:属性length表示数组的长度,usage:a.length
二、数组应用
1)案例
public class demo { 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数组的第2个元素为:"+intArray[1]); System.out.println("strArray数组的第5个元素为:"+strArray[4]); System.out.println("floatArray数组的第最后一个元素为:"+floatArray[floatArray.length-1]);//长度减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]+" "); } } } //ch数组的长度为:4 //intArray数组的第2个元素为:0 //strArray数组的第5个元素为:null //floatArray数组的第最后一个元素为:0.0 //整型数组intArray的元素为: //1 2 3 4 5
2)案例:求数组元素的累加和
package com.fiona.javaBasis.day7array_1; //求数组元素的累加和 import java.util.Scanner; public class _02ArrayDemo { 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.println("数组元素的类容为:"); 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("\n数组元素的累加和为:"+sum); } } //请输入第1个元素: //1 //请输入第2个元素: //2 //请输入第3个元素: //3 //请输入第4个元素: //4 //请输入第5个元素: //5 //数组元素的类容为: //1 2 3 4 5 //数组元素的累加和为:15
3)案例:求数组中能被3整除的元素并打印输出。
package com.fiona.javaBasis.day7array_1; //2-6编程练习:求数组中能被3整除的元素并打印输出。 public class _03ArrayDemo2_6 { public static void main(String[] args) { //定义一个整型数组,并初始化 int [] arr= new int[15]; System.out.println("数组元素为:"); for (int a=0;a<15;a++){ arr[a]=a+1; System.out.print(arr[a]+" "); } //循环遍历数组,找出能被3整除的元素并打印输出 System.out.println("\n能被3整除的数组元素为:"); for (int i=1;i<=arr.length-1;i++){ if (arr[i]%3==0){ System.out.print(arr[i]+" "); } } } }
4)案例:求元素最大值
package com.fiona.javaBasis.day7array_1; public class _04ArrayMax { public static void main(String[] args) { // 求元素的最大值 int[]a= {34,23,78,56,31}; int max=a[0]; for(int i=1;i<a.length;i++) { if(max>a[i]) { max=a[i]; System.out.println("此数组中最大值为:"+max); } } } }
三、增强型for循环、变量值交换
1)增强型for循环又叫foreach循环,循环的终止条件:把数组中的内容遍历一遍。❤常用
int[] arr={1,2,3,4,5}; for(int n;arr) System.out.println(n);
2)如何对变量a,b的值进行交换❤常用
int temp; temp=a; a=b; b=temp;
四、冒泡排序
❤重点
1)冒泡排序
package com.fiona.javaBasis.day7array_1; public class _06maopaopaixu { //冒泡排序法:从小到大排序 public static void main(String[] args) { int[] a = { 34, 42, 33, 45, 6, 7 }; System.out.println("排序前的内容是:"); for (int n : a) {//使用增强型for循环输出数组 System.out.print(n + " "); } int temp;//定义中间变量,用来交换两个变量的值 for (int i = 0; i < a.length - 1; i++) {//外层循环控制循环几次 for (int n=0;n< a.length-i-1; n++) {//内层循环控制每趟排序 if (a[n]> a[n + 1]) { temp = a[n + 1]; a[n + 1] = a[n]; a[n] = temp; } } } System.out.println( '\n'+ "排序后的内容是:"); for (int j : a) { System.out.print(j+" "); } } }
2)案例:统计字符出现次数
package com.fiona.javaBasis.day7array_1; public class _07ArrarDemo4_4 { public static void main(String[] args) { //定义一个字符数组ch并初始化 char [] ch = {'c','a','i','d','e','x','A'}; //循环遍历数组,统计字符’a’或’A’出现的次数 int sum=0; for(int i:ch){ if (i=='a'||i=='A'){ sum++; } } //打印输出统计数据 System.out.println("字符’a’或’A’出现的次数为:"+sum); } }