首页 Java学习正文

建立一个ArrayTool工具

Jean Java学习 2016-04-20 719 0 Java

 第一个

class ArrayTool
{
 private ArrayTool () {}   //空参数私有化
 //获取一个数组的最大值
 public static int getMax(int[] arr)   // 因为功能函数里没有调用对象,所以用static
 {
  int max = 0;
  for (int x=1;x<arr.length;x++)
  {
   if(arr[x]>arr[max])
    max = x;
  }
  return arr[max];
 }
 //获取一个数组的最小值
 public static int getMin(int[] arr)
 {
  int min = 0;
  for (int x=1;x<arr.length;x++)
  {
   if(arr[x]<arr[min])
    min = x;
  }
  return arr[min];
 }
 //定义一个置换功能,因为不需要对用户提供,所以可以设置为私有权限
 private static void swap(int[] arr,int a,int b)
 {
  int temp =arr[a];
  arr[a] = arr[b];
  arr[b] = temp;
 }
 //定义一个对数组的打印功能
 public static void printArr(int[] arr)
 {
  System.out.print("[ ");
  for(int x=0;x<arr.length;x++)
   if (x!=arr.length-1)
       System.out.print(arr[x]+",");
      else 
    System.out.print(arr[x]+" ]");
   System.out.println();
 }
 //选择排序(从小到大)
 public static void selectSort(int[] arr)
 {
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=x+1;y<arr.length;y++)
    if (arr[x]>arr[y])
    {
    swap(arr,x,y);
    }
  }
 }
 //冒泡排序(从大到小)
 public static void bubbleSort(int[] arr)
 {
  for (int x=0;x<arr.length-1;x++)
  {
   for (int y=0;y<arr.length-x-1;y++)
    if (arr[y]<arr[y+1])
    {
     swap(arr,y,y+1);
    }
  }
   
 }
 //折半查询
 public static int halfSearch(int[] arr,int key)
 {
  int min=0,max=arr.length-1,mid;
  while (min<=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;
 }
}

第二个

class ArrayDemo
{
 public static void main(String[] args)
 {
  //ArrayTool tool = new ArrayTool();  //禁止空参数建立,因为在不同的类
  int[] arr = {12,17,6,9,11,3,20};
  int max = ArrayTool.getMax(arr);
  int min = ArrayTool.getMin(arr);
  System.out.println("max="+max+"\n"+"min="+min);
  ArrayTool.printArr(arr);
  ArrayTool.selectSort(arr);
  ArrayTool.printArr(arr);
  ArrayTool.bubbleSort(arr);
  ArrayTool.printArr(arr);
  int[] arr1 = {1,3,5,7,9,11};
  int key = ArrayTool.halfSearch(arr1,8);
  System.out.println("key="+key);
 }
}

 

评论