android基础学习-java篇day3-step1-第四节:java数组

1.什么是数组?

数组是相同类型的数据按顺序组成的一种引用数据类型。

数据类型:

1.基本数据类型

2引用数据类型:类、接口、数组

数组的声明:

语法格式:数据类型[] 数组名(int[] array)   or  数据类型 数据名[](int array[])

变量声明的语法格式: 数据类型 变量名

数组的创建:

语法格式一:先声明后创建 

数据类型[] 数组名

数组名=new 数据类型[数组长度]

语法格式二:声明的同时创建数组

数据类型[] 数组名=new 数据类型[数组长度]

int arr =new int[10];  注意:数组的长度必须指定

数组的初始化:

数据在声明的同时给数组进行赋值,叫数组的初始化

数组的应用:不同类型数组的默认值

package com.demo.day3.array;

public class ArrayDemo {

	public static void main(String[] args) {
		//输出各类型数组的默认值
		//声明一个整形数组
		int[] intArray;
		//声明一个字符串类型数组
		String[] strArray;
		//创建数组
		intArray=new int[5];
		strArray=new String[10];
		//声明的同时数组初始化
		float[] f=new float[5];
		int[] intArray2=new int[10];
		char[] ch= {'a','b','c','d'};
		char[] ch2=new char[4];
		//输出字符数组的长度
		System.out.println("这是字符数组的长度"+ch.length);
		//为整形数组进行循环赋值
		for(int i=0;i<5;i++) {
			intArray[i]=i+1;
		}
		//循环输出整形数组
		for(int i=0;i<5;i++){
			System.out.print(intArray[i]+" ");
			
		}
		System.out.println();
		System.out.println("这是整形数组的默认值"+intArray2[0]);
		System.out.println("这是字符串数组的默认值"+strArray[0]);
		System.out.println("这是浮点型数组的默认值"+f[f.length-1]);//输出最后一个f[9] 长度为10
		System.out.println("这是字符数组的默认值"+ch2[0]);
	}

}

输出结果:

这是字符数组的长度4
1 2 3 4 5 
这是整形数组的默认值0
这是字符串数组的默认值null
这是浮点型数组的默认值0.0
这是字符数组的默认值

案例1:求数组元素的累加和

package com.demo.day3.array;

import java.util.Scanner;

public class ArrayPlusDemo {

	public static void main(String[] args) {
		// 求从键盘输入的数字给数组赋值,并求其累加和
		int[] intArray=new int[5];
		for(int i=0;i<intArray.length;i++) {
			System.out.print("请输入第"+(i+1)+"个元素的值");
			//从键盘里面输入数据
			Scanner sc=new Scanner(System.in);
			//逐一赋值
			intArray[i]=sc.nextInt();
		}
		//循环输出数组的值
		for(int i=0;i<intArray.length;i++) {
			System.out.print(intArray[i]+" ");
		}

		System.out.println("\n增强型for循环输出数组的值");//换行
		//增强型for循环输出数组的值
		for(int n:intArray) {
			System.out.print(n+" ");
		}
         //计数数组的累加和
		int sum=0;
		for(int i=0;i<intArray.length;i++) {
			sum=sum+intArray[i];
		}
		System.out.println();//换行
		System.out.println("数组的累加和为:"+sum);
	}

}

输出结果:

请输入第1个元素的值1
请输入第2个元素的值2
请输入第3个元素的值3
请输入第4个元素的值4
请输入第5个元素的值5
1 2 3 4 5 
增强型for循环输出数组的值
1 2 3 4 5 
数组的累加和为:15

数组案例:冒泡排序

将一组数按从小到大的方法进行排序

{23,14,26,55,24,56}

分析:

第一轮:(内轮五次比较)

23与14比较,23>14,互换位置;

23与26比较,23<26,不变;

26与55比较,26<55,不变;

55与24比较,55>24,互换位置

55与56比较,55<56,不变  

结果{14,23,26,24,55,56}

第二轮:(内轮四次比较)

14与23比较,23>14,不变

23与26比较,23<26,不变;

26与24比较,26>24,互换位置;

26与55比较,55>26,不变

结果:{14,23,24,26,55,56}

第三轮:(内轮三次比较)

14与23比较,23>14,不变

23与24比较,24>23,不变;

24与26比较,26>24,不变;

结果:{14,23,24,26,55,56}

第四轮:(内轮两次比较)

14与23比较,23>14,不变

23与24比较,24>23,不变;

结果:{14,23,24,26,55,56}

第五轮:(内轮一次比较)

14与23比较,23>14,不变

结果:{14,23,24,26,55,56}

6个数要完成

5次外轮比较、内轮比较,每次减1

数组案例:冒泡排序法

从大到小排序

package com.demo.day3.array;

public class SortDemo {

	public static void main(String[] args) {
		// 冒泡排序 从大到小排序
		// 定义一个整形数组
		int[] array = { 23, 11, 5, 35, 24, 14 };
		// 输出未排序的数组
		for (int n : array) {
			System.out.print(n+" ");
		}
		// 外层循环
		for (int i = 0; i < ((array.length) - 1); i++) {
			// 内层循环控制每趟的排序
			for (int j = 0; j < ((array.length) - 1) - i; j++) {
				int temp;// 数据交换盒子
				if (array[j] < array[j + 1]) {
					temp = array[j + 1];
					array[j + 1] = array[j];
					array[j] = temp;
				}

			}
		}
		System.out.println();
		for (int n2:array) {
			System.out.print(n2+" ");
		}
	}
}

结果:

23 11 5 35 24 14 
35 24 23 14 11 5 

猜你喜欢

转载自blog.csdn.net/qq_17846019/article/details/82414894