最近写健康评估功能,遇到数组数据的处理,发现不少未知的东西,故对用到的东西作一个总结。java
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]); } }