zoukankan      html  css  js  c++  java
  • 数组与集合

    数组&集合

    一、一维数组
      1、定义:可以存储多个相同类型的有固定容量的容器
      2、格式:A:动态初始化(给长度无元素 )   int[] arr = new int[5];
            B:静态初始化(直接给出元素 )   int[] arr = {1,2,3,4,5};
      3、访问方式:for循环遍历:索引从0到数组长度-1;
             直接访问单个数组元素:arr[2];

    二、二维数组
      1、格式:A:动态初始化 数据类型[][]  数组名 = new 数据类型[m][n];   (m:二维数组中有多少个一维数组   n:一维数组数组中元素的个数)
            int[][] arr = new int[m][n];
          B:静态初始化 数据类型[][] 数组名 = {{元素1,元素2···},{元素3,元素4,元素5···},···};
            int[][] arr = {{1,2,3,},{4,5}};

    三、数组的默认初始化值:
      * 整数类型:0
      * 小数类型:0.0
      * 字符类型:u0000
      * 布尔类型:false
      * 引用数据类型:null
    四、数组常见的2个异常:
      1、数组空指针异常:(NullPointerException) 数组没有任何引用指向
      2、数组索引越界异常:(ArrayIndexOutOfBoundsException) 访问不了没出现的索引

    数组小例子:

    package test;
    
    public class ArrayS {
    
        public static void main(String[] args) {
            //动态初始化一维数组
            int[] arr = new int[5];
            //单个赋值
            arr[0] = 1;
            arr[1] = 2;
            arr[2] = 3;
            arr[3] = 4;
            arr[4] = 5;
            //静态初始化二维数组
            int[][] arrs = {{1,6,3},{4,7}};
            int count=0;//定义一个变量记录数据
            //判断数组中,一维数组与二维数组相同的数字有几个
            for(int i = 0 ; i < arr.length; i++) {
                for(int j=0;j<arrs.length;j++){
                    for(int x=0;x<arrs[j].length;x++){
                        if(arrs[j][x]==arr[i]){
                            count++;
                            System.out.print(arr[i]+" ");
                        }
                    }
                }
            } 
        }
    }

    结果:



    五、集合
      1、定义:只能存储引用性数据类型的容量可变的容器
      2、构造方法:ArrayList();
      3、常见功能方法(增获删改):
        添加:
          add(E e); 向集合中添加元素
          add(int index,E e); 向集合中指定索引位置添加元素
        获取:
          int size(); 获取集合长度
          E get(int index); 获取指定索引上的元素
        修改:
          set(int index,E e); 将指定索引位置上的元素用新元素进行替换
        删除:
          remove(Object obj); 根据指定元素进行删除
          remove(int index); 将指定索引上的元素删除
    4、基本数据类型对应的包装类
      byte      Byte
      short     Short
      int         Integer
      long      Long
      float      Float
      double     Double
      char     Chracter
      boolean    Boolean

    集合小例子:

    package test;
    
    import java.util.ArrayList;
    
    public class ArrayListS {
            public static void main(String[] args) {
                ArrayList<String> list = new ArrayList<String>();
                //增加元素到集合
                list.add("hello");
                list.add("java");
                list.add("world");
                //直接打印集合
                System.out.println("直接输出集合:"+list);
                //遍历集合打印元素
                System.out.print("遍历输出集合:");
                for(int i=0;i<list.size();i++){
                    if(i==list.size()-1){
                        System.out.println(list.get(i));
                    }else{
                    System.out.print(list.get(i)+" ");//获取每个集合元素
                    }
                }
                System.out.println("------");
                
                //修改第一个元素
                list.set(0, "hi");
                System.out.println("修改后的集合"+list);
                System.out.println("------");
                
                //删除第二个元素
                list.remove(1);
                System.out.println("删除后的集合"+list); 
            }
    }

    结果:



    六、集合与数组的区别:
      数组是固定的
      集合是可变的
      数组既可以存储基本数据类型也可以存储引用数据类型
      集合只能存储引用数据类型。如果想存储基本数据类型就要使用对应的包装类

    七、集合为什么是可变的?
      创建一个ArrayList集合,默认初始长度是10
      如果容量中已经存满了元素,那么会自动创建一个比原来长度多1.5倍的新数组。
        然后调用System中arrayCopy()方法,将原数组中的元素复制到新数组中。然后继续用新数组存储元素



    smile
  • 相关阅读:
    DBA操作常用命令
    DBA常用SQL
    安装下rlwrap
    destoon复制新模块的方法
    生成二维码
    布隆过滤
    Golang中的三个点
    Golang: 数组和切片
    Fabric的权限管理:Attribute-Based Access Control
    Node.js web发布到AWS ubuntu 之后,关闭Putty,Node 项目也随之关闭的解决办法
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7789281.html
Copyright © 2011-2022 走看看