数组
1.数组的由来
例题:录入三十个学生的成绩
如果设置30个变量,则成本十分高,而且维护比较麻烦
这时采用数组就不需要那么多的变量
2.数组的使用
public class Main { public static void main(String[] args) {//String[] args 是声明了一个字符型数组 //声明一个数组 如果要存储整数,则为整型 int[] arr;//声明 arr=new int[5];//赋值,给数组里面五个成员,都分别给个成绩 //给arr[0] arr[1] arr[2] arr[3] arr[4]分别赋值 arr[0]=60;arr[1]=90;arr[2]=34;arr[3]=89;arr[4]=89; } }
3.数组的内存图
4.变量声明和arrgs参数声明
1.第一种int[ ] arr或者int arr[ ]都可以
public static void main(String[] args) {//String[] args传递存储字符串的参数
5.声明分配空间赋值的省略写法
public class Main { public static void main(String[] args) { //声明一个数组 如果要存储整数,则为整型 int[] arr;//声明 arr=new int[]{81,23,34,44};//与c语言不同,因为后面已经赋值,前面[]里面不可写数字,而c语言可以 int[] arr2=new int[]{81,23,34,44}; int[] arr3={81,23,34,44}//如果声明,分配空间 赋值 是在一行,可以省略new int[] } }
6.数组的length属性
public class Main { public static void main(String[] args) { //java数组,天然有个只读属性,叫length //对比c语言,C语言必须要知道数组确定数组的长度,而java不需要 int[] arr={81,23,34,44}; System.out.println(arr.length);//注意arr.length与arr,length()区别,跟了()叫方法,不跟是属性 System.out.println("数组里面的信息:"); for (int i = 0; i < arr.length; i++) {//直接arr.for就可以直接跳出来 System.out.println(arr[i]); } } }
例题:数列输出求和判断
要求:有一个数列:8,4,2,1,23,344,12
循环输出数列的值
求数列中所有值的和
猜数游戏:从键盘上任意输入一个数,判断数列中是否包含这个数
知识点:三元操作符
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int[] arr={8,4,2,1,23,344,12}; int sum=0; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); sum+=arr[i]; } System.out.println("总和为:"+sum); System.out.println("请输入一个数"); int num= scanner.nextInt(); boolean bfound=false; for (int i = 0; i < arr.length; i++) { if(num==arr[i]){ bfound=true; break; } } System.out.println(bfound?"找到":"没找到");//bfound?相当于是问一下是真还是假,如果是真则为前面,否则为后面 //唯一的三元操作符 } }
例题2.购物金额结算
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); double[] arr; arr=new double[5]; for (int i = 0; i < arr.length; i++) { System.out.println("请输入第"+(i+1)+"笔的金额:"); arr[i]=scanner.nextDouble(); } System.out.println("序号\t金额"); double sum=0.0; for (int i = 0; i < arr.length; i++) { System.out.println((i+1)+"\t"+arr[i]); sum+=arr[i]; } System.out.println("总金额:"+sum); } }
7.Arrays的sort和toString方法
8.字符数组顺序和逆序输出
import java.sql.SQLOutput; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { char[] arr={'a','c','u','b','e','p','f','z'}; Arrays.sort(arr);//只能升序排序 for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); } System.out.println(); /* 逆序输出 */ for (int i = arr.length-1; i >=0; i--) { System.out.print(arr[i]); } } }
Aways.sort(arr)只能升序排序