最近写健康评估功能,遇到数组数据的处理,发现很多未知的东西,故对用到的东西做一个总结。
数组的定义。
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.数组的分类。
只要是基本数据类型都可以创建对应数组,只是数组中只能存放对应类型的数据。
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.数据使用。
(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
for(int j = i+1;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
for(int j = 0;j
if(arr[j]
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
for(int j = 0;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]
mid = (min+max)/2;
if(key>arr[mid]){
min = mid+1;
}else if(key
max = mid-1;
}else {
return mid;
}
}
return -1;
}
4.数据类型的转换
(1)double类型转int类型
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)类型转换精度损失问题
(3)String类型的数组转double类型
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]);
}
}