java代码库02——数组
拒绝窘境,当你不停滞不前的时候,就已经在退步了。
Akino·杜菲 版本声明:原创内容,请勿转载,否则将追究法律责任!
1.基本数据类型的数组变量,直接打印的结果:
打印的内容是[I@7852e922这种地址值,注意唯一不同的是,println这个方法对字符型的数组有特殊的处理方式:重载这个方法的结果是打印数组里的所有字符!
package com.test; public class Practise2 { public static void main(String[] args) { byte[] a1 = new byte[2]; short[] a2 = new short[2]; char[] a3 = {'a','b','6'}; int[] a4 = new int[5]; float[] a5 = new float[4]; long[] a6 = new long[5]; boolean[] a7 = new boolean[3]; double[] a8 = new double[3]; System.out.println(a1); System.out.println(a2); System.out.println(a3); System.out.println(a4); System.out.println(a5); System.out.println(a6); System.out.println(a7); System.out.println(a8); } }
View Code
2.数组的默认值
注意:数组的默认值是0,注意如何给数组赋值
/* 验证: 1.数组的默认值: 2.数组元素的访问方式: 数组名[索引值] 练习:定义基本数据类型的数组,有2个元素.考察他们的默认值: */ public class ArrayDemo3{ public static void main(String[] args){ //定义一个数组 int[] arr = new int[3]; //在堆空间中开辟3个空间,每个空间可以存放一个int型元素.初始值为0. //然后把首元素的地址(也就是整个数组的地址)赋值给栈空间中的变量arr //验证默认值: System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); //如何对数组元素赋值: arr[2] = 10; System.out.println(arr[2]); arr[2] = 20; System.out.println(arr[2]); } }
View Code
3.数组的默认值
注意:引用数组默认值为null,就是String[ ]的默认值是null,剩下是0.0,0,false之类
/* 考察基本数据类型和引用数据类型的数组的默认值! 整数:0 浮点数:0.0 布尔型:false 引用数据类型:null */ public class ArrayDemo4{ public static void main(String[] args){ byte[] arr1 = new byte[2]; System.out.println(arr1[0]); System.out.println(arr1[1]); System.out.println("------------------"); char[] arr2 = new char[2]; System.out.println(arr2[0]); System.out.println(arr2[1]); System.out.println("------------------"); short[] arr3 = new short[2]; System.out.println(arr3[0]); System.out.println(arr3[1]); System.out.println("------------------"); int[] arr4 = new int[2]; System.out.println(arr4[0]); System.out.println(arr4[1]); System.out.println("------------------"); long[] arr5 = new long[2]; System.out.println(arr5[0]); System.out.println(arr5[1]); System.out.println("------------------"); boolean[] arr6 = new boolean[2]; System.out.println(arr6[0]); System.out.println(arr6[1]); System.out.println("------------------"); float[] arr7 = new float[2]; System.out.println(arr7[0]); System.out.println(arr7[1]); System.out.println("------------------"); double[] arr8 = new double[2]; System.out.println(arr8[0]); System.out.println(arr8[1]); System.out.println("------------------"); //定义字符串数组 String[] arr9 = new String[2]; System.out.println(arr9[0]); System.out.println(arr9[1]); } }
View Code
4.数组的遍历(1)
注意:也可以使用增强for更容易
package com.test; public class Practise4 { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 56, 6, 5, 4, 2, 1, 1 }; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
View Code
5.数组的遍历(2)
注意:数组遍历每个数字之间打个逗号,最后一个数字不需要有逗号,所以需要加入一个判断,就是数组长度 i !=arr.length的时候打逗号
package com.test; public class Practise5 { public static void main(String[] args) { int[] arr = {1,2,3,5,6}; printArray(arr); } public static void printArray(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); if(i!=arr.length-1){ System.out.print(","); } } } }
View Code
6.自定义数组的长度,输入最大值和最小值,并自定义取的长度
方式:定义方法打印、最大值、最小值,然后录入两个数据,求两个数据之间的随机个数的数值,利用了math.random()*(max-min+1)+min
/* 数组长度和元素都是随机产生.求最值: 元素的范围是键盘录入的. */ import java.util.Scanner; public class ArrayDemo10{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.print("输入元素的最小值: "); int min = s.nextInt(); System.out.print("输入元素的最大值: "); int max = s.nextInt(); //随机产生一个数,当成数组的长度 int len = (int)(Math.random() * 50 + 1); //创建数组 int[] arr = new int[len]; //遍历数组,用随机数给元素赋值 for(int i = 0;i<arr.length;i++){ arr[i] = (int)(Math.random() * (max - min + 1) + min); } //打印随机数组 System.out.println("产生的随机数组是: "); printArray(arr); //求最值: System.out.println("最大值是: "+ getMax(arr)); System.out.println("最小值是: "+ getMin(arr)); } //自定义方法,打印数组的元素 public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); if(i != arr.length - 1){ System.out.print(","); } } //最好在最后加一个换行, System.out.println(); } //getMax public static int getMax(int[] arr){ int max = arr[0]; for(int i = 1;i<arr.length;i++){ if(arr[i] > max){ max = arr[i]; } } return max; } //getMin public static int getMin(int[] arr){ int min = arr[0]; for(int i = 1;i<arr.length;i++){ if(arr[i] < min){ min = arr[i]; } } return min; } }
View Code
7.获取指定元素的第一次出现的索引值
思路:定义一个方法判断是否相等返回i还是-1,main函数中加个条件判断,刚才返回的值要是i就有,打印一下,要是-1就每一,索引不会有负数的。
/* *普通查找:获取指定元素第一次出现的索引 * 普通查找:就是从前往后遍历查找 * 二分查找:要求数组必须是已经排好序的 * */ package com.test; public class Practise8 { public static void main(String[] args) { int[] arr = {1,2,3,4,5,30,6}; int value = 30; int res = getIndex(arr, value); if(res==-1){ System.out.println("没有找到"); }else{ System.out.println(value+"第一次出现的索引值是:"+res); } } public static int getIndex(int[] arr,int value){ for(int i = 0 ;i<arr.length;i++){ if(arr[i] == value){ return i; } } return -1; } }
View Code
8.数组的复制
思路:遍历原数组,然后让新数组的每个元素和原数组相等,然后打印一下,当然java.lang包下也已经为我们写好了一个数组复制,arr.clone();
/* 定义方法实现:数组的复制:重点考察是否需要返回值 既然是复制,说明产生了一个新的数组.这个新的数组和源数组的长度一致,各个元素都相同. 返回值:就是产生的新的数组!! 类型是:int[] */ public class ArrayDemo12{ public static void main(String[] args){ int[] src = {9,5,2,7}; //调用方法获取一个src的副本 int[] copy = copyArray(src); // printArray(src); printArray(copy); // System.out.println(src == copy);//false } // public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); if(i != arr.length -1){ System.out.print(","); } } System.out.println(); } //用于实现:数组的复制 //返回值类型:int[] //形参列表:int[] src public static int[] copyArray(int[] src){ //创建一个和src一样大的数组,遍历源数组,用源数组的元素给新数组元素赋值. int[] copy = new int[src.length]; //遍历 for(int i = 0;i<src.length;i++){ copy[i] = src[i]; } // return copy; } }
View Code
8.定义方法求阶乘
思路:for循环,阶乘思想,就是阶乘的值在遍历过程中 i 要从1开始取。
/* 1.定义方法,用于计算一个int数值的阶乘 //返回值类型:int //形参列表:int value */ public class HomeworkDemo1{ public static void main(String[] abc){ // int res = getNum(5); System.out.println(res); // System.out.println(getNum(5)); } //返回值类型:int //形参列表:int value public static int getNum(int value){ //求阶乘思想: int res = 1; for(int i = 1;i<=value;i++){ res *= i; } return res; } }
View Code
9.指定起始值和最终值,随机取一个数
思路:利用math.random(),
/* * 练习:从键盘录入起始值和结束值,获取指定范围的随机值 * 定义方法,用于获取指定范围内的一个随机值(int) * */ package com.test; import java.util.Scanner; public class Practise11 { public static void main(String[] args) { Scanner scanner= new Scanner(System.in); System.out.println("请输入起始值: "); int a = scanner.nextInt(); System.out.println("请输入最终值: "); int b = scanner.nextInt(); System.out.println("随机值是 "+getRandom(a, b)); } public static int getRandom(int a,int b){ return (int)(Math.random()*(a-b+1)+b); } }
View Code
你不愿意改变的时候,往往就是你最需要改变的时候。让你变得更加专业,成为一个it精英。只有经历才能让我们更加认识自己,不经历历练就无法看见阳光。 欢迎加入BigBang高级大数据之路,qq群号:945694891。