建站小二,上海注册公司流程及资料,wordpress做登录界面,社区问答网站开发五、数组
1、数组元素的遍历
1.1数组的遍历#xff1a;将数组内的元素展现出来
1、普通for遍历#xff1a;根据下表获取数组内的元素 2、增强for遍历#xff1a; for#xff08;数据元素类型 变量名#xff1a;数组名#xff09;{ 变量名#xff1a;数组内的每一个值…五、数组
1、数组元素的遍历
1.1数组的遍历将数组内的元素展现出来
1、普通for遍历根据下表获取数组内的元素 2、增强for遍历 for数据元素类型 变量名数组名{ 变量名数组内的每一个值 }
区别 1、需要下标就是用普通for不需要下标使用增强for 2、增强遍历的底层原理就是普通for
public class Travesal1 {public static void main(String[] args) {String[] sArr{安其拉,妲己,吕布};//增强for遍历for (String e : sArr) {System.out.println(e e);}//普通for遍历for(int index0;indexsArr.length;index){String elesArr[index];System.out.println(ele ele);}}
}class Travesal02{public static void main(String[] args) {int[] arr{30,20,40,50,90,80};//增强for遍历for (int i : arr) {System.out.println(增强for i);}//普通for遍历for (int e 0; e arr.length; e) {System.out.println(普通for arr[e]);}}
}
1.2 定义一个整形数组
int[] arr{66,77,88,99,11,22,33}; 获取总和 public class TrversalExer2 {public static void main(String[] args) {int[] arr{66,77,88,99,11,22,33};//定义变量记录总和int sum0;//增强遍历for(int e:arr){sume;}//普通遍历
// for (int i 0; i arr.length; i) {
// sumarr[i];
// }System.out.println(总和为 sum);}
}
1.3 定义一个整型数组获取最大值和标出下标?
int[] arr{66,77,88,99,11,22,33};
public class TrversalExer_1{public static void main(String[] args) {//1、定义数组int[] arr{66,77,88,99,11,22,33};//todo定义变量 记录最大值下标int maxNum0;int index0;//2、开始遍历for (int i 0; i arr.length; i) {//数组中的每一个元素与假设的”int maxNum1;“进行比较如果数组元素假设值则元素是最大值if(arr[i]maxNum){maxNumarr[i];//记录最大值下标indexi;}}//3、展示数组System.out.println(最大值是 maxNum,下标是index);}
}
class TrversalExer_2{public static void main(String[] args) {//1.定义变量int[] arr{66,77,88,99,11,22,33};//2.定义变量记录最小值下标int minNumarr[0];int index0;for (int i 0; i arr.length; i) {if(arr[i]minNum){minNumarr[i];index1;}}System.out.println(最小值三十 minNum,下标是index);}
}2、Java虚拟机的内存划分
为了提高运算效率就对空间进行了不同的区域划分因为每一片区域都有特定的处理数据方式和内存管理方式。
程序运行时才会在虚拟机上开辟内存内存区域划分的目的提高运算效率
1 .栈存储着方法内的局部变量信息。 2 .堆对象。new的对象包括数组都存在堆中。 3 .本地方法栈Java并不是万能的有些功能时无法实现的额需要救助与其他语言来实现通过调用本地方法调用其他语言。 4 .方法区元空间静态信息常量信息类中的描述信息。 5 .程序计数器存储计算机下一条指令的地址。
2.1 怎么画栈堆图
public class JVMMemory3 {public static void main(String[] args) {int m10;int[] arrnew int[3];arr[0]99;arr[2]66;System.out.println(arr[0] arr[0]);System.out.println(arr[1] arr[1]);System.out.println(arr[3] arr[3]);}
}2.2 输出英文星期几
用一个数组保存星期一到星期天的7个英语单词从键盘输入1-7显示对应的单词 {“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”,“Sunday”}
public class ArrayExer4 {public static void main(String[] args) {/***///1、准备数组String[] arr{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};//2、创建键盘输入对象Scanner innew Scanner(System.in);//3、接受数组System.out.println(请输入数字1-7);int monthin.nextInt();//4、展示单词String mesage arr[month - 1];System.out.println(mesage mesage);//5、关闭资源in.close();}
}2.3 从键盘读入学生成绩找出最高分并输出学生成绩等级
- 成绩最高分-10 等级为’A’- 成绩最高分-20 等级为’B’- 成绩最高分-30 等级为’C’- 其余 等级为’D’提示先读入学生人数根据人数创建int数组存放学生成绩。请您输入第1个学生的成绩90请您输入第2个学生的成绩80请您输入第3个学生的成绩70请您输入第4个学生的成绩60请您输入第5个学生的成绩80class ArrayExery_2{public static void main(String[] args) {//1、创建键盘输入对象Scanner innew Scanner(System.in);//2、获取学生的个数System.out.println(请输入学生的个数);int countin.nextInt();//3、创建数组存储学生的成绩int[] arrnew int[count];//4、遍历数组、存储成绩for (int i 0; i arr.length; i) {System.out.println(请您输入第(i1)个学生的成绩);int sourein.nextInt();arr[i]soure;}//5、过去最高成绩int maxsourearr[0];for (int i : arr) {if(imaxsoure){maxsourei;}}System.out.println(maxsoure maxsoure);//6、判断学生的等级for (int i 0; i arr.length; i) {int score arr[i];if(scoremaxsoure-10){System.out.println(第(i1)个学生成绩等级是A);}else if(scoremaxsoure-20){System.out.println(第(i1)个学生成绩等级是A);}else if(scoremaxsoure-30){System.out.println(第(i1)个学生成绩等级是A);}else{System.out.println(第(i1)个学生成绩等级是A);}}//7、关闭资源in.close();}
}3、冒泡排序 3.1 冒泡排序的准备
public class BubbleSort5 {public static void main(String[] args) {int m20;int n10;System.out.println(交换前m m,nn);int tempm;mn;ntemp;System.out.println(交换后m m,nn);int[] arr{77,66,55,44,33,22,11};System.out.println(arr arr);//地址值[I5b480cf9//Arrays.toString(arr)soutv,展示arr中的值System.out.println(Arrays.toString(arr) Arrays.toString(arr));}}
3.2 冒泡排序的基础写法
class BubbleSort_1{public static void main(String[] args) {int[] arr{77,66,55,44,33,22,11};System.out.println(排序前 Arrays.toString(arr));//todo-1:数组元素时7个最多6次有序for (int i 0; i arr.length-1; i) {//todo进行每一次排序,-1:为了防止下标越界for(int j0;jarr.length-1;j){//如果前一个后一个两个数进行交换if(arr[j]arr[j1]){int temparr[j];arr[j]arr[j1];arr[j1]temp;}}System.out.println(排序中 Arrays.toString(arr));}System.out.println(排序后 Arrays.toString(arr));
}
}3.3 冒泡排序的优化
class BubbleSort_2{public static void main(String[] args) {int[] arr{77,66,55,44,33,22,11};System.out.println(排序前 Arrays.toString(arr));//todo-1:数组元素时7个最多6次有序for (int i 0; i arr.length-1; i) {//假设此次排序已经有序若是假设失败boolean flagtrue;//todo进行每一次排序,-1:为了防止下标越界// -i:为了专注于无序部分即可不需要对有序部分排序for(int j0;jarr.length-1-i;j){//如果前一个后一个两个数进行交换if(arr[j]arr[j1]){int temparr[j];arr[j]arr[j1];arr[j1]temp;//如果有前一个后一个则假设失败数组无序flagfalse;}}if(flag){break;}System.out.println(排序中 Arrays.toString(arr));}System.out.println(排序后 Arrays.toString(arr));
}3.4 定义一个数组存储学生的成绩求总分平均分
3.5 定义一个数字 对数组元素进行反转
10 20 30 40 50 60 70
70 60 50 40 30 20 10
3.6 定义一个数组 键盘输入一个数字 判断此数字是否在数组内
请您输入一个数 55 有此元素 55 下标是 3
请您输入一个数 99 查无此元素 99
import java.util.Scanner;
public class ArrayText {public static void main(String[] args) {//1、创建键盘输入对象Scanner innew Scanner(System.in);//2、获取成绩System.out.println(请问您要存储几个学生的成绩);int countin.nextInt();//3、创建数组int[] arrnew int[count];//4、遍历数组for (int i 0; i arr.length; i) {System.out.println(请您输入第(i1)个学生的成绩);arr[i]in.nextInt();}//4.1获取最大值、最小值、总成绩int maxNumarr[0] , minNumarr[0],sum0;for (int e : arr) {if(emaxNum){maxNume;}if(eminNum){minNume;}sume;}//5、展示总成绩平均分System.out.println(总成绩 sum,最高成绩maxNum,最低成绩minNum,平均分sum/arr.length);//6、关闭资源in.close();}
}4、反转
4.1 反转1开辟了新内存进行反转
public class Reverse7 {public static void main(String[] args) {int[] arr{11,22,33,44,55,66,77};//反转前System.out.println(反转前 Arrays.toString(arr));//反转//1、创建一个新数据 长度为7int[] newArrnew int[arr.length];//2、将旧数据内容 反转后存储到新数组内int index0;for(int iarr.length-1;i0;i--){newArr[index]arr[i];//更改index下标index;}//3、将新数组地址赋值给旧数组arrnewArr;//反转后System.out.println(反转后 Arrays.toString(arr));}
}4.2 反转2就在原来的内存上进行反转 class Reverse7_1{public static void main(String[] args) {int[] arr{11,22,33,44,55,66,77};//反转前System.out.println(反转前 Arrays.toString(arr));//反转for(int i0;iarr.length/2;i){int temparr[i];arr[i]arr[arr.length-1-i];arr[arr.length-1-i]temp;}//反转后System.out.println(反转后 Arrays.toString(arr));}
}4.3 反转3 LIndex0左边从0开始RIndexarr.length-1右边往左开始左边右边左边一直加右边一直减
class Reverse7_3{public static void main(String[] args) {int[] arr{11,22,33,44,55,66,77};//反转前System.out.println(反转前 Arrays.toString(arr));//反转//LIndex0左边从0开始RIndexarr.length-1右边往左开始左边右边左边一直加右边一直减for(int LIndex0,RIndexarr.length-1;LIndexRIndex;LIndex,RIndex--){int temparr[LIndex];arr[LIndex]arr[RIndex];arr[RIndex]temp;}//反转后System.out.println(反转后 Arrays.toString(arr));}
}4.5 数组元素的扩容
4.6找出所有的偶数并求和
public class EvenTest8 {public static void main(String[] args) {int[] arr{10,11,12,13,14,15,16,17};//找出所有的偶数并求和int sum0;for (int e : arr) {if(e%20){sume;}}System.out.println(sum sum);}
}4.7 数组扩容数组已经满了再添加元素
class EvenTest8_1{public static void main(String[] args) {String[] arr{张三,王五,李四};//1.创建一个新数组String[] newArr new String[arr.length 1];//2.将旧数组赋值为新数组for (int i 0; i arr.length; i) {newArr[i]arr[i];}//3.将新数组地址赋值给旧数组arr newArr;arr[3]安其拉;System.out.println(Arrays.toString(arr) Arrays.toString(arr));}
}5、总结
5.1数组元素的遍历
1普通for值fori
2增强for值for底层是普通for
5.2 数组元素的内存图
1单个数组
2多个数组
3两个数组指向同一个地址
5.3数组的小算法
1顺序查找
2冒泡排序
3特殊值
4反转
5数组的扩容
6、二维数据的初始
7、二维数组的静态初始化
静态初始化编译时确定数组的长度以及内容 形式1 数据类型[][] 数据名{{},{}}; 形式2 数据类型[][] 数组名new 数据类型[][]{{“李白”,“李三”},{“安其拉”,“哈哈”,“喜喜”}};
public class DoublearrayTest_1 {public static void main(String[] args) {System.out.println(---------静态数组------------);int[][] arr {{20, 40, 60}, {11, 22, 33, 44}, {55, 66, 77, 88, 99},{100,200}};System.out.println(arr.length arr.length);//4System.out.println(arr[0] arr[0]);//第一个一维数组中的第三个元素System.out.println(arr[0][2] arr[0][2]); //60System.out.println(arr[2][4] arr[2][4]); //99System.out.println(arr[3].length arr[3].length);//2String[][] arr1;arr1new String[][]{{李白,李三},{安其拉,哈哈,喜喜}};System.out.println(arr1.length arr1.length);//2System.out.println(arr1[1][2] arr1[1][2]); //喜喜}
}8、二维数组的动态初始化
动态初始化编译时确定数组的长度和默认值 形式1规则矩形 数据类型[][] 数组名new 数据类型[ 数组1][ 数值2] 数值1一位数组的的个数 数组2一维数组内元素的个数
class DoublearrayTest1_2 {public static void main(String[] args) {//数据类型[][] 数组名new 数据类型[数组1][数值2]int[][] arr new int[5][6];System.out.println(arr.length arr.length);System.out.println(arr[0].length arr[0].length);System.out.println(arr[4].length arr[4].length);System.out.println(arr[0][0] arr[0][0]);}
} 形式2非规则矩形 数据类型[][] 数组名new 数据类型[数组1][][ ] 数值1一位数组的的个数
class DoublearrayTest1_2 {public static void main(String[] args) {//数据类型[][] 数组名new 数据类型[数组1][]int[][] iArr new int[3][];System.out.println(iArr[0] iArr[0]);iArr[0] new int[6];iArr[0][0] 66;iArr[1] new int[]{33,55,77};}
}8、二维数组的遍历
public class Taversal_2 {public static void main(String[] args) {String[][] arr {{侵权,王五},{嗯嗯,让人,头疼},{右移,哈哈,更改,得到}};
//只遍历第一个一维数组其他的依次类推// for(int i0;iarr[0].length;i){
// System.out.println(arr[0][i]\t);
// }for (String[] eleArr : arr) {//对一堆数组再次遍历for (String e : eleArr) {System.out.println(e\t);}System.out.println();}}
}
class Taversal2_1{public static void main(String[] args) {int[][] arr{{11,22},{33,44,55}};for (int[] eleArr : arr) {for (int e : eleArr) {System.out.println(e\t);}}}
}9、二维数组的内存图
二位数组的元素是一维数组一维数组不是基本类型数据不是基本那就是引用引用数据类型默认值null。
10、二维数组求最值
public class BoubleArrayExer_3 {public static void main(String[] args) {//获取最大值/最小值int[][] arr{{111,222,333},{10,20,30},{-1,-2,99}};//定义变量记录最大值和最小值int maxNumarr[0][0];int minNumarr[0][0];//遍历数据获取每一个值for (int[] eleArr : arr) {for (int e : eleArr) {//如果数组元素假设得最大值 则说明数组元素是最大值if(emaxNum){maxNume;}//如果数组元素假设得最小值 则说明数组元素是最小值if(eminNum){minNume;}}}System.out.println(最大值 maxNum,最小值 minNum);}
}键盘输入一个正整数 动态 创建长度为输入的数得二维数组遍历此二维数组再控制台。 1 22 333 4444 55555
class BoubleArrayExer3_1{public static void main(String[] args) {//1、创建键盘输入对象Scanner innew Scanner(System.in);//2、获取数组得长度System.out.println(请您输入数组的长度);int length in.nextInt();//3、创建二维数组int[][] arrnew int[length][];//4、遍历数组给元素赋值//4.1遍历二维数据获取每一个一维数组下标for (int i 0; i arr.length; i) {//4.2给一位数组开辟空间初始化arr[i] new int[i 1];//4.3遍历一维数组给每一个元素赋值for (int j 0; j arr[i].length; j) {arr[i][j]i1;}}
// System.out.println(arr[0] arr[0]);
// arr[0]new int[01];
// arr[0][0]01;
// arr[1]new int[11];
// arr[1][0]11;
// arr[1][1]11;
// arr[2]new int[21];
// arr[2][0]21;
// arr[2][1]21;
// arr[2][2]21;//5、展示数据for (int[] eleArr : arr) {for (int e : eleArr) {System.out.print(e);}System.out.println();}//6、关闭资源in.close();}
}
文章转载自: http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.qprtm.cn.gov.cn.qprtm.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.yllym.cn.gov.cn.yllym.cn http://www.morning.ppllj.cn.gov.cn.ppllj.cn http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn http://www.morning.mftzm.cn.gov.cn.mftzm.cn http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn http://www.morning.kncrc.cn.gov.cn.kncrc.cn http://www.morning.jnhhc.cn.gov.cn.jnhhc.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn http://www.morning.smdnl.cn.gov.cn.smdnl.cn http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn http://www.morning.iknty.cn.gov.cn.iknty.cn http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.kbqws.cn.gov.cn.kbqws.cn http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.qjsxf.cn.gov.cn.qjsxf.cn http://www.morning.gywfp.cn.gov.cn.gywfp.cn http://www.morning.jfxth.cn.gov.cn.jfxth.cn http://www.morning.tnbsh.cn.gov.cn.tnbsh.cn http://www.morning.epeij.cn.gov.cn.epeij.cn http://www.morning.gwhjy.cn.gov.cn.gwhjy.cn http://www.morning.sffkm.cn.gov.cn.sffkm.cn http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.rnzjc.cn.gov.cn.rnzjc.cn http://www.morning.bpmz.cn.gov.cn.bpmz.cn http://www.morning.cptzd.cn.gov.cn.cptzd.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.pnbls.cn.gov.cn.pnbls.cn http://www.morning.hryhq.cn.gov.cn.hryhq.cn http://www.morning.gyfhk.cn.gov.cn.gyfhk.cn http://www.morning.gpnfg.cn.gov.cn.gpnfg.cn http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn http://www.morning.bxrqf.cn.gov.cn.bxrqf.cn http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn http://www.morning.rbjf.cn.gov.cn.rbjf.cn http://www.morning.rshijie.com.gov.cn.rshijie.com http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn http://www.morning.lylkh.cn.gov.cn.lylkh.cn http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.cjqcx.cn.gov.cn.cjqcx.cn http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.bhrbr.cn.gov.cn.bhrbr.cn http://www.morning.khtyz.cn.gov.cn.khtyz.cn http://www.morning.qyglt.cn.gov.cn.qyglt.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.snmsq.cn.gov.cn.snmsq.cn http://www.morning.kzrg.cn.gov.cn.kzrg.cn http://www.morning.wjrtg.cn.gov.cn.wjrtg.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.drmbh.cn.gov.cn.drmbh.cn http://www.morning.dbcw.cn.gov.cn.dbcw.cn http://www.morning.gwqcr.cn.gov.cn.gwqcr.cn http://www.morning.xbbrh.cn.gov.cn.xbbrh.cn http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn http://www.morning.jgykx.cn.gov.cn.jgykx.cn http://www.morning.vibwp.cn.gov.cn.vibwp.cn http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.lmyq.cn.gov.cn.lmyq.cn http://www.morning.ghcfx.cn.gov.cn.ghcfx.cn http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn http://www.morning.kphsp.cn.gov.cn.kphsp.cn http://www.morning.hhnhb.cn.gov.cn.hhnhb.cn http://www.morning.rxlck.cn.gov.cn.rxlck.cn http://www.morning.phwmj.cn.gov.cn.phwmj.cn http://www.morning.lqtwb.cn.gov.cn.lqtwb.cn http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn http://www.morning.knpmj.cn.gov.cn.knpmj.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.zcsch.cn.gov.cn.zcsch.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn