数组

 一维数组
一:     数据类型[] 数据名={变量名}
     1.条件:1.数值在两个及两个以上。
             2.类型相同.
     2.组成:1.数据类型
             2.数组名
             3.开辟空间
             4.值
     3.步骤:1.定义数组:数组类型[] 数组名   int[] num;
             2.指定长度开辟空间:数组名=new 数组类型[长度]
             3.赋值:(数值名[下标]=值;)
             4.使用
     4.输出形式:
               for(int i=0;i<number.length;i++){
               System.out.println(number[i]);
                 }
二:     融合:
     1. String[] str=new String[4];
     2.String[] str={"",""};
拓展:随机生成数:
      Math:  int value=(int)(Math.random()*13)+1;(生成13个数)
      Random: Random r=new Random;
              for(int i=0;i<number.length;i++){
                     number[i]=r.next();
                                      }
三:排序:
        1.冒泡排序:
                  (1)首先比较第一个数和第二个数,将小数放前,大数放后;然后比较第二个数和第三个数,将小数房前,大数放后;一直继续
                  (2)仍从第一对数开始比较,一直到倒数第二个数;
            例如:
import java.util.Scanner;
public class Demo10 {
   public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int[] num={};
for (int i = 0; i < num.length; i++) {
num[i]=input.nextInt();
}
for (int n = 0; n < num.length-1; n++) {
for (int k = 0; k < num.length-n-1; k++) {
if(num[k]>num[k+1]){
int temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
}
}
}
         2.选择排序:选择排序(最小的数放在第一位)       最小值下标索引是k;
                    下标    0  1  2  3                    初始时k对应第一个位置,从后往前比,如果后面的数小,就交换
                            57 68 59 52
                            i         j
                            k
 k:最小值下标j:从最后一个数开始i:从0开始  如果j<i,就交换
例子:
import java.util.Scanner;
public class Demo12 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int[] arr={58,66,14,56,74};
for (int i = 0; i < arr.length-1; i++) {
int k=i;
for (int n = arr.length-1; n>i; n--) {
if(arr[n]<arr[k]){
k=n;
}
   }
int temp=arr[i];
arr[i]=arr[k];
arr[k]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
四:1.二维数组:
    数组类型[][] 数组名;
    数组名=new 数据类型[第一维长度][第二维长度]
   2.长度(1):行:arr.length
         (2):列:arr[i].length
   3对于不规则的数组
      int[][] arr=new int[3][];
        arr[0]=new int[1];
        arr[1]=new int[2];
        arr[3]=new int[3];
   或者:
       int[][] arr={{},{},{}};
拓展:
   1.二分法(前提是数组中的数据已经排序好了)
       Arrays.binarySearch(arr,3)
   2.copy数组:
       Arrays.copyof(arr,arr.length)
   3.copy部分
       Arrays.copyofRange(arr,2,4);
   4.排序
       Arrays.sort(arr);
   5.foreach输出数组
       for(数据类型 变量名:数组名){}

posted @ 2017-12-13 22:57  宋建楠  阅读(164)  评论(0)    收藏  举报