数据结构-数组

`

package com.company.arrays;

import java.util.Arrays;

public class ArraysTest1 {
    /**
     * 数组:通过连续的存储空间,存储相同类型元素的集合
     * 1.数组定义
     *    int[] arrs;
     *    String strs[];不推荐使用
     * 2.初始化
     *      静态初始化:
     *         a.int arrs[] = new int[]{1,2,3,4};
     *          [I@5cad8086 class对象+hashcode值
     *         b.String[] arr = {"数据结构"};
     *      动态初始化:
     *         int[] ars = new int[5]; 声明一个能存储5个元素的int类型数组
     *      常见问题:
     *          a.声明数组的时候 动态数组初始化 不指定长度 int[] ars = new int[];
     *          b.给数组的重新赋值的时候 通过{}创建数字对象
     *              int[] arrs = new int[]{1,2,3,}; arr = {};//这里会编译出错
     *
     */
    /**
     * 测试数组的常见属性
     *Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
     * 	at com.company.arrays.ArraysTest1.main(ArraysTest1.java:32)
     *通过索引获取数组元素 索引不在这个范围 [0,ars.length)
     *    /* //1.声明一个int类型的数组
     *         int[] ars =new  int[]{1,2,3,4};//数组长度的确定
     *         //2.获取当前数组的个数
     *         System.out.println("当前数组的长度是:"+ars.length);
     *         //3.通过索引获取指定位置上的元素
     *         System.out.println("获取索引为3的元素"+ars[ars.length-1]);
     *         String[] str = new String[10];
     *         System.out.println(str.length);
     *         System.out.println(str[1]);*/
    /**
     * 数组的内存分析
     *         int[] ars = new int[5];
     *         ars[2] = 10;//将10赋值给索引为2的位置
     *         System.out.println(ars.length);
     *         System.out.println(ars[2]);
     *         System.out.println(ars[0]);
     */
    /**
     * 为什么数组是不可变的?
     *   数组长度一旦指定就不可更改
     * 数组的CRUD以及迭代
     *     int[] ars = new int[]{2,3,1,43,432};
     *         System.out.println(ars[4]);
     *
     *         ars[1] = 10;
     *         System.out.println(Arrays.toString(ars));
     *
     *         ars[2] = 0;
     *         System.out.println(Arrays.toString(ars));
     *         //普通for循环 索引位置【0,length)
     *         for(int i = 0 ; i<ars.length;i++){
     *             System.out.println("索引是" + i + "位置上的元素是" +ars[i]);
     *             ars[i] += 2;
     *             System.out.println("修改后的索引"+ i+"位置上的元素是"+ars[i]);
     *
     *         }
     *         System.out.println(Arrays.toString(ars));
     *         System.out.println();
     *         //foreach循环
     *         int index = 0;
     *         for (int num:ars) {
     *             System.out.println("每个"+index+"位置上的元素"+num);
     *             index++;
     *         }
     */
    /**
     * 多维数组的创建,初始,内存分析
     * 在java中存在1维数组和N维数组的
     *      二维数组动态初始化
     *      type[][] name = new tyoe[n.length][m.length];
     * 其实就是一个1维数组,只不过1维数组的每个位置上的元素又是一个一位数组
     *
     *         //二维数组的声明
     *         int[][] ars = new int [2][3];
     *
     *         System.out.println(Arrays.toString(ars[0]));
     *         System.out.println(ars[0][1]);
     *
     *         //创建一个1维数组,这个数组的长度为3,每个位置都是一个新的一维数组,这个数组的长度为2
     *         String[][] strs = new String[][]{{"zhangpeng","zhengan"},{"haha","halou"},{"hello","world"}};
     *         System.out.println(strs[0][1]);
     *         //创建一个1维数组,
     *         String[][] string = new String[][]{{"zhangpeng","zhengan"},{"haha","halou"},{"hello","world"}};
     *         System.out.println(strs[1][0]);
     *
     *         //创建一个长度为1的1维数组,每个位置上的元素也是一个数组对象
     *         int[][] arrs = new int[2][];
     *         System.out.println(arrs.length);
     *         arrs[0] = new int[3];
     *         arrs[1] = new int[5];
     *         System.out.println(Arrays.toString(arrs));
     *         System.out.println(arrs[0][1]);
     */
    /**
     *
     * 二维数组的迭代
     *        int[][] ars = new int[3][];
     *         ars[0] = new int[]{1,2,3};
     *         ars[1] = new int[]{2,3,4};
     *         ars[2] = new int[]{3,4,5};
     *
     *         for(int i = 0;i<ars.length;i++){
     *             for(int j = 0;j<ars[i].length;j++){
     *                 System.out.print(ars[i][j]+"\t");
     *                 }
     *             System.out.println();
     *             }
     *         System.out.println("=================");
     *         for (int[] as:ars) {
     *             for (int num:as) {
     *                 System.out.print(num+"\t");
     *
     *             }
     *             System.out.println();
     *         }
     */
    /**
     *
     * 关于可变参数
     * 可变参数一定要保证在形式参数列表的末尾
     * 对于参数列表而言,必须保证形参列表中有且只能有一个可变参数
     *     public static void main(String[] arg){
     *         int num1 = 10;
     *         int num2 = 30;
     *         int num3 = 50;
     *         add(new int[]{num1,num2,num3});
     *         adds("",num1,num2,num3,10,20);
     *     }
     *     public static  void add(int[] num){
     *         int result = 0;
     *         for (int n:num) {
     *             result += n;
     *             System.out.println(result);
     *         }
     *         System.out.println("===============");
     *     }
     *     public static  void adds(String str,int ... num){
     *         int result = 0;
     *         for (int n : num) {
     *             result += n;
     *             System.out.println(result);
     *         }
     *     }
     */
    public static void main(String[] arg){
        System.out.println();

    }
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值