A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2119391569 中级黑马   /  2015-3-23 10:16  /  1245 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
这是一个可以对数组进行操作的工具类,该数组提供了获取最值、排序等功能。
@author  liqin
@version  v1.1

*/
public class ArrayTool
{
        private ArrayTool(){};
        /**
        获取一个整形数组中的最大值
        @param arr  接收一个int类型的数组
        @return  会返回一个该数组中的最大值
       
        */
        public static int getmax(int[] arr)
        {
                int  max=0;
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]>arr[max])
                        {
                                max=arr[x];
                        }
                }
                return max;
        }
        /**
        获取一个整形数组中的最小值
        @param  arr 接收一个int类型的数组
        @return  会返回一个数组中的最小值

        */
        public static int getmin(int[] arr)
        {
                int min=0;
                for(int x=0;x<arr.length;x++)
                {
                        if(arr[x]<arr[min])
                        {
                                min=arr[x];
                        }
                }
                return min;
        }
        /**
        给int数组进行选择排序
        @param  接收一个int类型的数组
       
        */
        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);
                                }
                        }
                }
        }
        /**
        给int数组进行冒泡排序
        @param  接收一个int类型的数组

        */
        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);
                                }
                        }
                }
        }
       
        /*
        给数组中元素进行换位置操作
        @param arr 接收一个int类型的数组
        @param  a  要置换的位置
        @param  b  要置换的位置
       
        */
        private static void swap(int[] arr,int a,int b)
        {
                int temp=arr[a];
                arr[a]=arr[b];
                arr[b]=temp;
        }
        /**
        用于打印数组中的元素。打印形式是:[elemet1,elemet2,.....]
        */
        public static void printArray(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.println(arr[x]+"]");
                }
        }
}
class ArrayToolDemo
{
        public static void main(String[] args)
        {
                int[] arr={3,6,9};

                int max=ArrayTool.getMax(arr);
                System.out.println("max="+max);
        }

}
编译的时候老是提找不到符号!

11 个回复

倒序浏览
getmax是小写的。你写成大写的了
回复 使用道具 举报
int max=ArrayTool.getMax(arr); //你在方法中定义的是小写的getmax名称,这里调用时,你却用了大写的M……

回复 使用道具 举报 1 0
调用函数跟实际函数的名称不一样
回复 使用道具 举报
问题解决了,呵呵谢谢大家!
回复 使用道具 举报
楼主仔细点哦。
回复 使用道具 举报
这因该是个小问题
回复 使用道具 举报
这因该是个小问题!!!!!!!!!
回复 使用道具 举报
2119391569 发表于 2015-3-23 18:13
问题解决了,呵呵谢谢大家!

你不觉得这个程序中获取最值的地方有问题么?max这个定义的是最大值,而你在方法中居然还用作了下标,这很容易出现数组溢出的情况啊
回复 使用道具 举报
zhangjinbu 发表于 2016-5-18 22:27
这因该是个小问题!!!!!!!!!

以上代码,求最值的部分有问题
  1. public static int getmax(int[] arr)
  2. {
  3.                 int  max=0;
  4.                 for(int x=0;x<arr.length-1;x++)
  5.                 {
  6.                         if(arr[x]>arr[x+1])
  7.                         {
  8.                                 max=arr[x];
  9.                         }
  10.                 }
  11.                 return max;
  12. }
复制代码


可以参考这个试试
回复 使用道具 举报
biocuration 发表于 2016-5-18 13:43
这因该是个小问题

程序编译没有问题,不代表代码是正确的,逻辑上可能会出现问题
回复 使用道具 举报

getmax是小写的。你写成大写的了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马