Java学习之基础训练二-----数组定义、赋值、求最值、排序、复制、扩容
来源:互联网 发布:驾驶员网络培训 编辑:程序博客网 时间:2024/06/14 20:35
数组练习
数组的定义
- 1.指定数组的中的元素个数,默认值为0,如: int[] arr1 = new int[4];
- 2.定义数组并赋初值,如:int[] arr2 = {1,4,5,6};注:此方式只能声明的同时赋值,不可分开。
- 3.定义的同时赋值,如:int[] arr3 = new int[]{1,4,5,6};
代码:
public class ArrayDemo {//类名 public static void main(String[] args) {//主函数 int[] arr1 = new int[4]; //默认值为0,0,0,0 int[] arr2 = {1,4,5,6}; //1,4,5,6 int[] arr3 = new int[]{1,4,5,6}; //1,4,5,6 int[] arr4; //arr4 = {1,4,5,6}; //编译错误,此方式只能声明同时初始化 arr4 = new int[]{1,4,5,6}; //正确 }}
数组下标越界异常
代码:
public class ArrayDemo {//类名 public static void main(String[] args) {//主函数 int[] arr = new int[3];//定义一个含有3个元素的空数组 System.out.println(arr.length);//输出数组的长度 arr[0] = 100;//给数组下标为0,也就是第一个元素赋值100 arr[1] = 200; arr[2] = 300; //arr[3] = 400; //数组下标越界异常 System.out.println(arr[arr.length-1]);//输出数组最后一个元素 }}
运行结果:
给数组随机赋值并输出
代码:
public class ArrayDemo {//类名 public static void main(String[] args) {//主函数 int[] arr = new int[10];//定义数组 for(int i=0;i<arr.length;i++){//for循环遍历数组 arr[i] = (int)(Math.random()*100);//给数组的每个元素依次赋随机值 System.out.print(arr[i]+" ");//输出每个元素 } System.out.println();//换行 System.out.println(arr);//这个输出的会是数组的地址而不是数组的内容 }}
运行结果:
求数组的最大值
代码:
public class MaxOfArray {//类名 public static void main(String[] args) {//主函数 int[] arr = new int[10];//定义数组 for(int i=0;i<arr.length;i++){//遍历数组 arr[i] = (int)(Math.random()*100);//赋值 System.out.print(arr[i]+" ");//输出每个元素 } int max = arr[0]; //假设第1个元素为最大值 for(int i=1;i<arr.length;i++){ //遍历剩余元素 if(arr[i]>max){ //若剩余元素大于max 要求最小值将>换成<即可 max=arr[i]; //修改max为较大的值 } } System.out.println("最大值为:"+max); }}
运行结果:
数组的排序
- 数组排序有java提供的方法,直接调用即可。
升序:Arrays.sort(arr);- 自定义排序
代码:
public class Demo07 { public static void main(String[] args) { int[] arr = new int[10];//定义一个10个元素的空数组 for(int i=0;i<arr.length;i++) {//for循环,遍历数组 int num =(int)(Math.random()*100);//随机生成0-100的整数 arr[i] = num;//并赋值给数组下标为i的元素 System.out.print(arr[i]+" ");//控制台输出,并加上空格 } System.out.println();//转行 //方法一直接调用java提供的升序函数// Arrays.sort(arr); //方法二,自定义函数 rank(arr);//调用rank()函数排序 for(int i=0;i<arr.length;i++) {//for循环,遍历数组 System.out.print(arr[i]+" ");//输出每个元素 } } //自定义数组排序函数 public static int[] rank(int[] arr) { for(int i=0;i<arr.length-1;i++) {//控制轮 for(int j=0;j<arr.length-1-i;j++) {//控制次数 if(arr[j]>arr[j+1]){ //和它下一个元素比 int t = arr[j];//记录一个元素 arr[j] = arr[j+1];//交换 arr[j+1] = t;//记录的赋给下一个元素 } } } return arr;//返回排序后的数组 }}
运行结果:
数组的复制
代码1:
public class ArrayDemo { public static void main(String[] args) { int[] a = {20,15,10,40,50}; //a:源数组 //a1:目标数组 //4:目标数组的长度 int[] a1 = Arrays.copyOf(a,4); //不灵活、效率低 for(int i=0;i<a1.length;i++){//遍历数组 System.out.print(a1[i]+" "); } }}
运行结果:
代码2:
public class ArrayDemo {//类名 public static void main(String[] args) {//主函数 int[] a = {10,20,30,40,50}; int[] a1 = new int[6]; //a:源数组 //1:源数组的起始下标 //a1:目标数组 //0:目标数组的起始下标 //4:要复制的元素的个数 System.arraycopy(a,1,a1,0,4); //灵活、效率高 //目标数组有6个元素,只复制了4个过来,剩余的为默认值0 for(int i=0;i<a1.length;i++){ System.out.println(a1[i]); } }}
运行结果:
数组的扩容
- 数组的扩容就是数组复制Arrays.copyOf(a,a.length+1);
a.length+1表示扩容一个
a.length-1表示缩容一个
代码:
public class ArrayDemo { public static void main(String[] args) { int[] a = {10,20,30,40,50}; //数组的扩容(创建了一个新的数组并将源数组数据复制过去) a = Arrays.copyOf(a,a.length+1);//扩容一个 for(int i=0;i<a.length;i++){ System.out.print(a[i]+" ");//扩容的一个为默认值0 } }}
运行结果:
阅读全文
0 0
- Java学习之基础训练二-----数组定义、赋值、求最值、排序、复制、扩容
- Java学习之基础训练一
- JAVA学习笔记(二)金字塔、求和、数组定义、冒泡排序
- java数组赋值,排序,遍历
- java学习之数组排序
- java入门第八天 数组的复制扩容(截取)
- java学习之数组(二)
- java学习之二-数组
- 【Java学习笔记】基础知识学习5【数组排序,复制】
- java学习之 数组排序-选择排序
- java中数组的定义和赋值
- java数组(定义、赋值和初始化)
- java定义赋值输出二维数组
- java之数组复制
- java数组复制与排序
- java:数组复制和排序
- think in java 学习之数组的直接赋值
- java基础学习记录之数组选择排序的学习与练习二
- Codeblocks安装与配置
- openssl 自建ca,颁发客户端证书
- POJ 3177
- 题目353:3D dungeon
- hdu5534 Partial Tree (巧妙转为完全背包)
- Java学习之基础训练二-----数组定义、赋值、求最值、排序、复制、扩容
- nth_element()
- console.log 打印object
- HDU 5521 Meeting(最短路)
- gcc的详细用法
- oracle锁与死锁概念,阻塞产生的原因以及解决方案
- water 灌水问题(最小生成树 搜索)
- 页面不缓存设置
- jenkins --部署项目到服务器需要的脚本