zoukankan      html  css  js  c++  java
  • Java 数组

    数组基本概念:

           目前,就自己小白的基础而言,我对于数组的理解仅停留在如何创建一个数组,如何通过整型索引值访问数组的元素,且数组一旦定义好后,它的长度是固定的,大多数情况下好像了解这些就够了,但是有时候如果需要较为复杂的运算,那么实际上是有必要在数组或是容器上进行合理的选择的。

           自动包装机制以及泛型的产生使得容器几乎与数组具有相同的优势了,可能数组现存的相对于容器的优势就在于效率问题了,数组的访问借助于“[]”语法,而List则可以使用add(),get()方法等;对象数组保存的是对象的引用,而基本类型数组则直接保存基本类型的值。

    数组的初始化,举例说明如下:

    public class Test1 {
        public static void main(String[] args) {
            // 数组对象初始化方式一:
            Grass[] species = new Grass[5];
            // 数组对象初始化方式二:
            Grass[] specie2 = {new Grass("element1"), new Grass("element2")};
            // 多维数组
            String[] str1 = new String[]{"hello","you","are","my","destiny"};
            Integer[][] int1 = {{1,3},{2,4},{6,8}};
            // 数组遍历
            for (String str : str1) {
                System.out.print(str);  
                System.out.println(); 
            }
            for (int i = 0; i < str1.length; i++) {
                System.out.print(str1[i]);  
                System.out.println(); 
            }
            for (Integer[] i : int1) {
                for (int j : i) {
                    System.out.print("数组元素" + j + "     "); 
                }
            }
        }
    }

           从上面的栗子也可以看出for循环与foreach循环的区别之处。

    Arrays类

           java.util类库中提供了Arrays类,它提供了一套用于数组的static实用方法,主要有以下几种:

     1 public class ArrayCommonMethod {
     2     public static void main(String[] args) {
     3         int[] i = new int[7];
     4         int[] j = new int[10];
     5         Arrays.fill(i, 50);
     6         Arrays.fill(j, 90);
     7         // java标准类库提供的的static方法System.arraycopy()
     8         // 用该方法复制数组要比for循环快很多
     9         System.arraycopy(i, 0, j, 0, i.length-1);
    10         System.out.println("j = " + Arrays.toString(j));
    11         // 比较两个数组的大小
    12         int[] k = new int[]{50, 50, 50, 50, 50, 50, 50};
    13         System.out.println(Arrays.equals(i, j));
    14         System.out.println(Arrays.equals(i, k));
    15         
    16         // 排序
    17         String[] str1 = new String[]{"hello","you","are","my","destiny"};
    18         System.out.println("排序前:" + Arrays.toString(str1));
    19         Arrays.sort(str1);
    20         System.out.println("排序后:" + Arrays.toString(str1));
    21         System.out.println(Arrays.binarySearch(str1, "are"));
    22         System.out.println(Arrays.binarySearch(str1, "hello"));
    23     }
    24 }

            总结:随着java版本的更新,容器的优势越来越突出,所以能使用容器的地方,尽量使用容器,除非你能够证明使用数组比使用容器的性能要好的时候才会选用数组代替容器。

  • 相关阅读:
    定义结构体
    UML建模需求分析常用的UML图
    UML建模EA模型的组织
    优化Python脚本替换VC2005/2008工程x64配置
    C++插件框架已在 Mac OS X 下编译通过
    《iPhone开发快速入门》交流提纲
    X3插件框架发布v1.1.3
    从零开始创建一个插件
    Google论坛什么时候又可以使用的
    我的第一个Py脚本:批量替换VC工程中的x64条件定义配置
  • 原文地址:https://www.cnblogs.com/fengyouyou/p/7762517.html
Copyright © 2011-2022 走看看