Java_数组
一、java数组
1、数组定义:数组就是形象于一个容器(容器即可理解为:装东西的容器)
2、数组特征:数据是连续的,分配大小固定,数组中数据类型完全一致
创建规则:int[] arr = new int[10] //创建字符类型为init,长度为10的数组
package com.jd.lcj.test; /** * Created by lcj on 2016/6/29. */ public class while01 { public static void main(String[] args) { int[] arr = new int[10];////创建一个长度为10的整型数组 arr[0] = 123; //o:表示数组中的第一元素 arr[1] = 133; arr[2] = 143; arr[4] = 'A';//正确,因为char和int可以互相转化 System.out.println("数组4的数值为:"+ arr[4]); //数组4的数值为:65 [assiilc码中对应的值] // arr[2] = 'dfdsf'; //设置的数组为整形不是字符串形式 System.out.println("数组长度为:"+ arr.length); //打印数组长度 //数组下标超界 arr[10] = 100; System.out.println("数组长度为:"+ arr.length); //java.lang.ArrayIndexOutOfBoundsException 表示数组超越规定的长度 } }
二、数组分类
1)动态数组
对数组中的元素进行动态传值,
//动态数组,在数组长度为10 中可传任意数字
//数组的动态初始化【数组的长度只能写于new对象的后面】 int[] arr = new int[10];////创建一个长度为10的整型数组 arr[0] = 123; //o:表示数组中的第一元素 arr[1] = 133; arr[2] = 143; arr[4] = 'A';//正确,因为char和int可以互相转化
2)静态数组
定义:数组中的元素是固定,不能超过规定的数组长度
创建规则: int[] srry ={11,22,334,55,6,6,77}; //创建一个整形数组,长度为7
public class while01{ public static void main(String[] args) { //静态初始化 int[] srry ={11,22,334,55,6,6,77}; System.out.println("srry数组长度为:"+ srry.length);//arry数组长度为:7 System.out.println("srrry数组中第四个为:"+ srry[4]); //srrry数组中第四个为:6 System.out.println("srry第八个数组为:"+ srry[8]);//不能超过数组长度7 //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 } }
三、数组简单操作
1)遍历
何为遍历?
简而言之,就是将数组中的元素从头到尾一次访问一遍。
方式:循环遍历或通过数组下标反问
public class while01{ public static void main(String[] args) { //静态初始化 int[] srry ={11,22,334,55,6,6,77}; System.out.println("srry数组长度为:"+ srry.length);//arry数组长度为:7 System.out.println("srrry数组中第四个为:"+ srry[4]); //srrry数组中第四个为:6 //通过for循环对数组中的元素进行遍历 for (int i = 0 ;i<srry.length;i++) { System.out.print(srry[i] + " ");//输出:11 22 334 55 6 6 77 } } }
2)CRUD
3)排序
使用java自带Arrays.sort()实现数组排序
package com.jd.lcj.test; import java.util.Arrays; public class while01{ public static void main(String[] args) { //静态初始化 int[] srry ={11,22,334,55,6,6,77}; //通过for循环对数组中的元素进行遍历 for (int i = 0 ;i<srry.length;i++) { System.out.print(srry[i] + " ");//输出:11 22 334 55 6 6 77 } System.out.println("\n----------升序排列--------------\n"); Arrays.sort(srry); // //对数组进行升序排序 for (int i = 0 ;i<srry.length;i++) { System.out.print(srry[i] + " ");//6 6 11 22 55 77 334 } System.out.println("\n--------降序排列------------\n"); for (int i = srry.length-1 ;i>=0;i--) { System.out.print(srry[i] + " ");//334 77 55 22 11 6 6 } } }
练习2:
打印出数组中最小或最大的元素,并进行升序排序
package com.jd.lcj.test; import java.util.Arrays; import java.util.Scanner; public class while01 { //对数组进行排序(升序、降序) public static void main(String[] args) { int[] arr = new int[10];//设置一个动态数组范围在10 int min;//最小值 int max;//最大值 Scanner in = new Scanner(System.in); //创建scanner对象,接收从控制台输入 for(int i=0;i<arr.length;i++){ System.out.println("请输入第"+(i+1)+"个整数:"); arr[i]=in.nextInt(); //什么类型next后面就跟什么类型,将用户随机输入动态元素放置在一个数组中arr[i] // System.out.print(arr[i]+ ""); } for(int i=0;i<arr.length;i++) { //循环打印数组中输出的数字并数值间隔为一个空格 System.out.print(arr[i]+" "); } System.out.println("\n------------------------\n"); Arrays.sort(arr);//对动态数组进行升序排序 min = arr[0]; max = arr[arr.length-1]; //按照下标对数组中的元素进行定位,从0开始升序 System.out.println("最小的元素是:"+min); System.out.println("最大的元素是:"+max); }