zoukankan      html  css  js  c++  java
  • JAVA数组的基本方法

    数组的基本方法

    数组可以存放多个数据,多个数据类型要统一
    数组格式:
    格式一:常用写法
    数组类型[] 数组名称 = new 数据类型[数组长度];
    格式二:蛋疼写法
    数组类型[] 数组名称;
    数组名称 = new 数组类型[数组长度];
    静态初始化数组格式:
    格式一:常用写法
    数组类型[] 数组名称 = new 数据类型[]{数值,数值,数值};
    格式二:蛋疼写法
    数组类型[] 数组名称;
    数组名称 = new 数组类型[]{数值,数值,数值};
    快速初始化数组格式(静态初始化数组的省略写法):
    数组类型[] 数组名称 = {数值,数值,数值,数值,数值,数值,数值};
    当你打印数组对象时返回的对象意思如下:
    [代表当前数据是数组 + 数据类型 + @数字代表的是地址值(的哈希值)
    数组动态初始化的时候默认会被赋予一个默认值
    整数数组默认赋予0
    浮点数组默认赋予0.0
    字符串或其他引用数组类型默认赋予null
    布尔数组默认赋予false
    常见报错信息java.lang.ArrayIndexOutOfBoundsException
    表示数组越界也就是超出了范围
    来看下面的实例:
     1 import java.util.Arrays;
     2 
     3 public class ListFunc {
     4     public static void main(String[] args){
     5         //动态数组初始化
     6         int[] array1 = new int[3];
     7         float[] array2 = new float[3];
     8         String[] array3;
     9         array3 = new String[3];
    10         boolean[] array4 = new boolean[1];
    11         System.out.println("array1="+array1[0]+" "+array1[1]+" "+array1[2]);
    12         System.out.println("array2="+array2[0]+" "+array2[1]+" "+array2[2]);
    13         System.out.println("array3="+array3[0]+" "+array3[1]+" "+array3[2]);
    14         System.out.println("array4="+array4[0]);
    15 
    16         //静态数组初始化
    17         int[] list1 = new int[]{1,2,3};
    18         float[] list2 = new float[]{1.0f,2.0f,3.0f};
    19         String[] list3;
    20         list3 = new String[]{"abc","bcd","def"};
    21         System.out.println("list1="+list1[0]+" "+list1[1]+" "+list1[2]);
    22         System.out.println("list2="+list2[0]+" "+list2[1]+" "+list2[2]);
    23         System.out.println("list3="+list3[0]+" "+list3[1]+" "+list3[2]);
    24 
    25         //快速数组初始化并统计长度
    26         int[] lists = {1,2,3,4,5,7,8,8,9,9,0,0,123,21,32,43,534,20};
    27         System.out.println("lists映射地址="+lists);
    28         System.out.println("lists的长度="+lists.length);
    29         int[] lists2 = lists.clone();
    30 
    31         //对已有的数据对象克隆并生成了新的地址空间
    32         System.out.println("clone映射地址="+lists.clone());
    33         System.out.println("克隆数组方法="+Arrays.toString(lists2));
    34         System.out.println("hashCode="+lists.hashCode());   //生成对应的哈希值
    35 
    36 
    37         //Arrays.toString方法直接可以转换数组快速变成可阅读模式
    38         // 使用此方法前需要import java.util.Arrays;
    39         int[] array5 = {1,2,3,4,5,6};
    40         String str = Arrays.toString(array5);
    41         System.out.println("array5="+str);
    42 
    43 
    44         String[] list5 = {"a","b","c"};
    45         String[] list6 = {"a","b","c"};
    46         //判断两个数组是否相等/相同
    47         System.out.println("Arrays-equals="+Arrays.equals(list5,list6));
    48         //生成哈希值
    49         System.out.println("Arrays-hashCode="+Arrays.hashCode(list6));
    50         //搜索数组的对象的下标位置(字符串不能用)
    51         System.out.println("Arrays-binarySearch="+Arrays.binarySearch(array5,2));
    52         //从数组的首位截取对应长度生成新数组
    53         System.out.println("Arrays-copyOf="+Arrays.toString(Arrays.copyOf(array5,2)));
    54         //从数组指定范围截取生成新数组
    55         System.out.println("Arrays-copyOfRange="+Arrays.toString(Arrays.copyOfRange(array5,4,6)));
    56 
    57         int[] array6 = {6,7,8,5,4,3,2,1};
    58         int[] array7 = array6.clone();
    59         //对数组从小到大排序
    60         Arrays.sort(array6);
    61         System.out.println("Arrays-sort="+Arrays.toString(array6));
    62         //同上方法一样也是排序
    63         Arrays.parallelSort(array7);
    64         System.out.println("Arrays-parallelSort="+Arrays.toString(array7));
    65         //对数组全部填充定义的值
    66         Arrays.fill(array6,10);
    67         System.out.println("Arrays-fill="+Arrays.toString(array6));
    68 
    69         //对下标的数利用生成器生成对应新的序列
    70         int[] array9 = new int[10];
    71         Arrays.setAll(array9,x->x*2);
    72         System.out.println("Arrays-setAll="+Arrays.toString(array9));
    73         //可使用表达式循环输出
    74         int[] array8 = {8,88,888};
    75         Arrays.stream(array8).forEach(i->System.out.println("stream-forEach="+i));
    76         //判断列表是否为空
    77         System.out.println("Arrays-asList-isEmpty="+Arrays.asList(list5).isEmpty());
    78     }
    79 }

    对应输出结果如下图:

     
  • 相关阅读:
    [转贴]Asp.Net[C#]在线压缩解压
    [转载]如何用C#语言构造蜘蛛程序
    [转载].net 集合类初步认识
    试用随笔
    安装中文VS2008 SP1 和.NETFRAMEWORK 3.5SP1后智能提示是英文的解决办法
    关于IE提示“Internet Explorer无法打开站点,已终止操作”的解决办法
    linux每天建立一个以当天日期命名的文件夹
    linux常用装机命令
    linux安装oracle客户端
    批量分发文件
  • 原文地址:https://www.cnblogs.com/cookie1026/p/9683418.html
Copyright © 2011-2022 走看看