数组与集合

数组&集合

一、一维数组
  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()方法,将原数组中的元素复制到新数组中。然后继续用新数组存储元素



posted @ 2017-11-05 22:57  球球啦啦啦  阅读(196)  评论(0编辑  收藏  举报