二维数组的定义和分类

    最近写健康评估功能,遇到数组数据的处理,发现不少未知的东西,故对用到的东西作一个总结。java

  1. 数组的定义。
int[] a = new int[] {1,2,3,4};		//方式一
int b[] = new int[] {1,2,3,4};		//方式二    		与方式一效果同样,只是写法不同
int[] c = new int[5];				//方式三		肯定数组的长度,数组元素的值用动态赋值
   c[0] = 1;
   c[1] = 2;
		
int d = 6;
String[] str = new String[d];      //方式四         数组的个数动态肯定,在数组长度不肯定,可是又有一个标准的时候使用

 2.数组的分类。数组

       只要是基本数据类型均可以建立对应数组,只是数组中只能存放对应类型的数据。code

byte[] by = new byte[1024];			//字节类型,主要用于文件和图片输入输出流
		int[] in = new int[5];				//整型数组
		float[] fl = new float[5];			//单精度类型
		double[] dou = new double[5];		//双精度类型
		long[] lon = new long[5];			//长整型
		String[] string = new String[10];	//字符串类型

3.数据使用。blog

(1)数组遍历。排序

int sums = 0;
		for(int i = 0;i < in.length;i ++) {
			sums += in[i];            //对数组中的元素求和
		}

(2)查找和搜索。   (来自百度)图片

//选择排序对数据进行升序排序(int)
   public static void selectSortAscendingArray(int[] arr){
    for(int i = 0; i<arr.length-1;i++){//i<arr.length-1;最后一个不用比较
     for(int j = i+1;j<arr.length;j++){
      if(arr[i]>arr[j]){
       int temp = arr[j];
       arr[j] = arr[i];
       arr[i] = temp;
       }
     }
    }
   }
//冒泡排序对数据进行降序排序(int)
  public static void bubbleSortDescendingArray(int[] arr){
   for(int i = 0;i<arr.length-1;i++){
    for(int j = 0;j<arr.length-1-i;j++){
     if(arr[j]<arr[j+1]){
      int temp = arr[j+1];
      arr[j+1] = arr[j];
      arr[j] = temp;
      }
    }
   }
  }
//冒泡排序对数据进行升序排序(int)
  public static void bubbleSortAscendingArray(int[] arr){
   for(int i = 0;i<arr.length-1;i++){
    for(int j = 0;j<arr.length-1-i;j++){
     if(arr[j]>arr[j+1]){
      int temp = arr[j+1];
      arr[j+1] = arr[j];
      arr[j] = temp;
      }
    }
   }
  }
//二分查找(int)
  public static int binarySearch(int[] arr,int key){
   int min,mid,max;
   min = 0;
   max = arr.length-1;
   while(arr[min]<arr[max]){
    mid = (min+max)/2;
    if(key>arr[mid]){
     min = mid+1;
    }else if(key<arr[mid]){
     max = mid-1;
    }else {
     return mid;
    }
   }
   return -1;
  }

4.数据类型的转换字符串

(1)double类型转int类型get

double e  = 3.9;
		double i  = 3.1;
		int f = (int) e;	//强制转换,小数部分所有舍去。 结果是3
		int g = (int) Math.floor(e);      //向下取整,再强制转换。-把小数部分取整了再去掉强制转换。结果是3
		int h = (int) Math.round(e);	 //先对小数四舍五入,再取整。结果是4
		int j = (int) Math.ceil(i);		//向上取整,只要有小数就加一。结果是4

(2)类型转换精度损失问题string

(3)String类型的数组转double类型it

String score = records.getString("scores");
		String[] sc = score.split("##");
		double[] sco = new double[sc.length];
		if(sc.length > 0) {   
			for(int i = 0;i< sc.length;i++) {
				sco[i] = Double.parseDouble(sc[i]);
			}
		}
相关文章
相关标签/搜索