java数组总结

数组是存储同一种数据类型的容器。索引从零开始,最大索引为长度减一。

定义格式:

  1. 数据类型 [] 数组名;(推荐使用)

  2. 数据类型 数组名 [];

数组的特点

 1.数组的长度是确定的,数组一旦创建,它的大小是不可以改变的。

 2.数组中的元素必须是相同类型,不允许出现混合类型。

 3.数组中的可以是任何数据类型,包括基本数据类型和引用数据类型。

 4.数组没有被初始化则为null,数组如果没有被显式初始化,则会自动初始化。其中的值与数组元素类型的默认初始化值相同。

 5.数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

数组的初始化

1.系统默认自动初始化

如: int [] arr = int[3];   ---->等同于 int [] arr = {0,0,0} 

如果是引用数据类型则自动初始化为null。

2.显式初始化

如: int [] arr = {1,2,3};

int [] [] arr2 ={{1,2},{2 ,3}};

3.使用工具初始化

如:int [] arr3 = new int[3];

       Arrays.fill(arr3,6);

Arrays.fill()方法只能填充一维基本类型数组。

数组的遍历:

public class ArrayTest {
    public static void main(String[] args) {
        int [] arr = new int[5];
        System.out.println(Arrays.toString(arr));
        //填充数组
        Arrays.fill(arr,8);
        //遍历数组
        for (int num :arr){
            System.out.println("加强for循环:"+num);
        }
        for(int i=0;i<arr.length;i++){
            System.err.println("普通for循环:"+arr[i]);
        }
        System.out.println("Arrays工具类:"+Arrays.toString(arr));
        
     }
}

java内存分析:

java.util.Arrays

Arrays类是一个非常有用的数组工具类,提供了很多的方法,检索,填充,排序,比较,toString()等。

常用方法:

  Arrays.toString();//返回数组的字符串形式

  Arrays.sort(); //为数组按升序排序

  Arrays.sort(Object[] array, int from, int to);//对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序)

  Arrays.fill();//对数组进行填充

  Arrays.fill(Object[] array,int from,int to,Object object);//对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾

数组转List

        int [] arr = {9,2,6,8};
        //返回false,
        System.out.println( Arrays.asList(arr).contains(8));

        List<int []> ints = Arrays.asList(arr);
        System.out.println(ints.size());//返回1,该list中只有一个数组对象
        System.out.println(ints.contains(8)); //返回false 
        
        Integer [] arr2 = new Integer []{9,2,6,8};
        //4  封装类Integer数组调用asList是把数组中的每个元素加到了list中
        System.err.println(Arrays.asList(arr2).size());
        System.err.println(Arrays.asList(arr2).contains(8));//true

再看一个例子

​
        Integer[] a = {1,2,3,4};
        int[] b = {1,2,3,4};
        String[] str = {"a","s","d"};
         
        List list1 = null;
        List list2 = null;
        List list3 = null;
         
        list1 = Arrays.asList(a);
        list2 = Arrays.asList(str);
        list3 = Arrays.asList(b);
         
        System.out.println("list1的大小:"+list1.size());
        System.out.println("list2的大小:"+list2.size());
        //注意,如果原数组的元素为基本数据类型,那么生成的list大小为1
        System.out.println("list3的大小:"+list3.size());
         
        System.out.println("--------原始数组的信息----------");
        System.out.print("a的内容:");
        for(int i= 0; i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
         
        System.out.print("str的内容:");
        for(int i= 0; i<str.length;i++)
        {
            System.out.print(str[i]+",");
        }
        System.out.print("\n");
         
        System.out.println("--------生成的list的信息----------");
        System.out.print("list1的内容:");
        Iterator ite = list1.iterator();
        while(ite.hasNext())
        {
            System.out.print((Integer)ite.next()+",");
        }
        System.out.print("\n");
        System.out.println("list1的大小:"+list1.size());
         
        System.out.print("list2的内容:");
        Iterator ite1 = list2.iterator();
        while(ite1.hasNext())
        {
            System.out.print(ite1.next().toString()+",");
        }
        System.out.print("\n");
        System.out.println("list2的大小:"+list2.size());
         
         
        list1.set(1,new Integer(23));
        a[0] = new Integer(90);
         
        System.out.println("--------修改后的信息----------");
        System.out.print("a的内容:");
        for(int i= 0; i<a.length;i++)
        {
            System.out.print(a[i]+",");
        }
        System.out.print("\n");
         
        System.out.print("list1的内容:");
        Iterator ite2 = list1.iterator();
        while(ite2.hasNext())
        {
            System.out.print((Integer)ite2.next()+",");
        }
        System.out.print("\n");
         
         
        list1.add(new Integer(6));
          System.out.println("------------------------");
        System.out.println("list1的大小:"+list1.size());
     
        System.out.println("------------------------");
        list1.add(2,new Integer(9));
        list1.remove(3);

​

结果截图:

当改变原数组中的元素时,会导致list对象中的相应元素发生改变;同样的,当生成的list对象中的元素做修改时,也会导致原来数组中相应的元素发生改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值