首页 > 技术文章 > 数组相关知识

tangdeqiang 2017-09-20 20:31 原文

1.main函数中String[  ] args是一个字符串数组。可以用Syetem.out.println(args[ ])在命令提示符(dos中)。在javac编译后,在java执行时输入字符串。如果要输入args[0][0] 则输入两个字符串 回车便会输出。如果不输入,会报错;

2.深刻理解数组。特别是二维数组和高维数组,需要弄明白他们的遍历,一般一维用一个for循环,二维用一个for循环嵌套一个for循环,以此类推;

3.在myeclipse中,可以使用alt+/快捷按出需要的程序和单词;

4.实际应用中常常需要将数组进行排序,java类库中提供了一个java.util.Arrays类作为数组的辅助功能类,该类提供了排序、数组转换成字符串、填充数组等功能。Arrays方法如下:

 

       public static void sort(Xxx[ ] a)

       a为需要进行排序的数组。功能:见API文档http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

       public static int binarySearch(Xxx[ ] a,Xxx v)

       参数:a为被查找数组,此数组必须是排好序的,否则结果无法预测。v为需要查找的值,其类型必须与a的成员类型一致。功能:见API文档。

       public static void fill (Xxx [ ]  a,Xxx  v)

      参数:a为需要进行填充的数组,v为填充数组的值。功能见API文档。

      public static String toString(Xxx [ ] a,Xxx v)

      参数:a为需要转化成字符串的数组。功能见API文档。

      public int nextInt(int n)

      参数:n为规定随机数生成范围为0到n(不包含n)。功能见API文档。例子程序如下:

      

import java.util.*;

import java.util.Random;

     public class TestArray {  

              public static void main(String[]args){  

                      int[] array=new int[10];  

                       int i=0;   

                       while (i<10){    

                               Random random=new Random();    

                               array[i++]=random.nextInt(10);

                       }   

                       System.out.println("未排序前数组成员为:");   

                        for(int j=0;j<array.length;j++){   

                              System.out.print(array[j]+" ");  

                        }  

                        System.out.println();   

                        Arrays.sort(array);  

                        System.out.println("排序后数组成员为:");   

                        for(int j=0;j<array.length;j++){

                               System.out.print(array[j]+" ");   

                         }  

                          System.out.println();  

                          int[] array1={3,1,4,5,2,7,8,6,9,0};  

                          Arrays.sort(array1,2,5);  

                          System.out.println("对数组array1的第三个到第六个元素进行排序后结果为:"+Arrays.toString(array1));  

                          String[] s=new String[]{"h","g","f","e","d","c","b","a"};  

                          Arrays.sort(s);   

                          System.out.println("对字符串数组s排序后的结果为:"+Arrays.toString(s));

        }

}

5.使用数组需要注意:先进行以上方法调用后再使用for循环遍历每个元素并且打印输出。并且在java中数组是作为对象来处理的;

6.数组的复制有两种:(1)直接定义一个相同长度的数组,对数组中的元素逐一复制。(2)利用类System类里的一个静态方法arraycopy,其调用方式  如下:

       public static void arraycopy(Xxx[  ]  form,int formIdex,Xxx[  ]  to,int toIndex,int count)   

       参数:form未被复制数组;formIndex为数组起始位置;to为目标数组;toIndex指定目标复制位置;count为被复制元素个数;

       功能:从数组form的第form+1个元素开始复制count个元素到to数组,to数组从第toIndex元素开始接收从form复制过来的数组;

 7.排序数组

利用Arrays里面的方法

import java.util.Arrays; 
public class Array{     
        public static void main(String[] args){     
                int[] a={5,4,2,4,9,1};                  
                Arrays.sort(a);  //进行排序     
                for(int i: a){     
                       System.out.print(i);     
              }    
        }    
} 

利用冒泡法排序

public class Array{
  public static void main(String[] arg){//冒泡排序算法     
     
    int[] args={1,2,3,45,56,7,8,9};
        for(int i=0;i<args.length-1;i++){     
              for(int j=i+1;j<args.length;j++){     
                   if (args[i]>args[j]){     
                     int temp=args[i];     
                       args[i]=args[j];     
                     args[j]=temp;     
                      }     
          } 
          System.out.println(args[i]);    
     }    
      
  }   
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      

推荐阅读