处理数组数据常用的功能
开发工具与关键技术:java
作者:陈希雄
撰写时间:2019/4/14
大家好,我今天要给大家分享一些处理数组的小功能,其实这些处理方法在java里面是已经封装好的,
其实在实际开发当中是用不到的,至于为什么要写呢?算是个人爱好吧!请看下面的代码
public class ArrayTools {
//遍历数组里面所有的元素
public static void arrayFor(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
//求数组中最大值
public static int arrayMax(int[] arr) {
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]>arr[0])
max=arr[i];
}
return max;
}
//求数组中最小值
public static int arrayMin(int[] arr) {
int Min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]<arr[0])
Min=arr[i];
}
return Min;
}
//将int类型的数组转成string类型,
public static String arrayString(int[] arr) {
String s="[";
for (int i = 0; i < arr.length; i++) {
if(i!=arr.length-1)
s+=arr[i]+", ";
else
s+=arr[i]+"]";
}
return s;
}
//将无序的数组按从大到小排序
//选择排序
public static void arraySort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[i]>arr[j])
swap(arr,i,j);
}
}
}
//冒泡排序
public static void arraySort_1(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])
swap(arr,j,j+1);
}
}
}
//交换位置目的:提高代码的复用性
private static void swap(int[] arr,int a,int b) {
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//获取数组中某个数字的索引,前提当前这个数组必须是有序的
//二分查找法
public static int arrayIndex(int[] arr,int num) {
int max=arr.length-1,min=0,mid;
while(max>=min) {
mid=(min+max)>>>1;
if(num>arr[mid])
min=mid+1;
else if(num<arr[mid])
max=mid-1;
else
return mid;
}
return -min-1;
}
}
上面的那些处理方法我已经封装在类里面了,需要用的时候这需要创建一个类对象和传入想要处理的数组数据即可,如下图所示: