数组(一维)(二维)

数组:存储多个相同数据类型的存储模型
    定义:
        格式1:
            数据类型[] 标识符;
        格式2:
            数据类型 标识符[];
        注意:使用直接使用格式1,因为格式2消耗资源多

    动态初始化:指定长度,系统分配默认值
        格式:
            数据类型[] 标识符=new int[长度];

    访问数组:
        格式:数组名称;
    访问元素:
        格式:数组名称[索引];

    索引(下标):元素(数组中的数据)排列的方式
        特点:
            1.0开始
            2.连续
            3.递增(每次加1)

    静态初始化:
           初始化时指定每个数组元素的初始值,由系统决定数组长度
           格式:数据类型[] 变量名=new 数据类型[]{数据1,数据2...数据n};
           例如:    int[] arr=new int[]{1,2,3,4,5};
           可以简化为:数据类型[] 变量名={数据1,数据2...数据n};
           注意:简化写法中使用的是大括号
          例如:    int[] arr={1,2,3,4,5,6,7,8,9,10};    

    操作:
        最大值
        最小值
        排序  (冒泡)

        查找  (二分):前提数组中的元素有序,不重复

//举例

//冒泡排序
int[] arr={4,5,8,9,3,2,1,6,12,32,15,16,21,54,46};
        int len = arr.length;
        for (int i = 0; i < len - 1; i++)//外循环决定冒泡趟数
        {
            for (int j = 0; j < len - 1 - i; j++)//内循环决定比较次数
            {
                if (arr[j] > arr[j+1])// 相邻元素两两对比
                {        
                    int temp = arr[j+1];        // 元素交换
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
        }

        //打印数组
        for(int i = 0; i < arr.length; i++)
            System.out.print(arr[i] + "\t");
        System.out.println("\n元素个数为:");
        System.out.println(arr.length);

        //二分查找
        Scanner sc=new Scanner(System.in);
        System.out.println();//换行
        System.out.println("请输入你要查找的数:");//键盘输入想要查找的数
        int x = sc.nextInt();//定义变量接收
        //int len = arr.length;
        int left = 0, right = arr.length - 1;//left表示数组中第一个元素的下标,
                                             //right表示数组中尾元素的下标
	    int mid = 0;//mid用来接收中间点元素的下标
        while (left <= right)//如果左端点小于右端点的话,说明还没有把数组查找完,循环继续
	    {
		    mid = (left + right )/ 2;
		    if (x < arr[mid])
            {
			    right = mid - 1;
		    }
		    else if (x > arr[mid])
		    {
		        left = mid + 1;
		    }
		    else if(x==arr[mid])
            {
                System.out.println(mid);
                break;
            }
	    }


        合并
        追加
        插入


二维数组:数组中的元素还是数组
    动态初始化(手动指定长度,系统默认值):数组中的元素(数组)的长度必须统一

 静态初始化(手动指定值,系统默认长度):数组中的元素(数组)的长度可以不统一

//举例

//动态数组的定义 
int[] ints = new int[10];//10为数组中元素的个数可修改,ints为变量名可修改
double[] doubles = new double[10];//浮点型数组
String[] strings = new String[10];//字符串类型的数组
//静态数组的定义
//完整写法
int[] arr=new int[]{4,5,8,9,3,2};//系统根据元素个数默认数组的元素有多少个
int[] arr={4,5,8,9,3,2};//省略写法


  


随机数:类似与Scanner
    1.导包
        import java.util.Random;
    2.创建对象
        Random random=new Random();
    3.产生随机数
        int i=random.nextInt(15);//随机数的范围为0--15,包含0但是不包含15
        //即随机范围不包含本身

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值