使用maxmin方法来遍历数组并求其中的最大和最小值

来源:互联网 发布:java中return返回值 编辑:程序博客网 时间:2024/04/28 00:11
今儿使用了Java泛型的知识写了一道遍历数组求字符串最大和最小值的程序,结果是漏洞百出,书上的写的东西太深奥了,结合自己写的程序,好好总结一下。

Pair.java是泛型类:
// Pair.javapublic  class Pair<T> {      //对泛型T的声明private T first;private T second;public Pair() {first = null;second = null;}public Pair(T first, T second ) {this.first = first;this.second = second;}public T getFirst() {return first;}public void setFirst(T Value) {first = Value;}public T getSecond() {return second;}public void setSecond(T Value) {second = Value;}}
下面是main()实现类:

public class PairTest {public static void main(String[] args) {// TODO Auto-generated method stubString[] a = {"Mary", "Sam", "a"};Pair<String> pr = ArrayAlg.maxmin(a);System.out.println("Max:"+pr.getFirst());//调用Pair中的get方法System.out.println("min:"+pr.getSecond());}}class ArrayAlg {public  static Pair<String> maxmin(String[] a) {if (a==null || a.length==0) {//此处为何不调换位置?因为a对象取null,a.length在a取null时在左就会出错。提示NullPointExpection。return null;}int max = Integer.MIN_VALUE;int min = Integer.MAX_VALUE; //若此处也为0,则min不会在len长度里面,两者没有交集,min的值为null。Pair<String> p = new Pair<String>();for (String s : a) {if(s==null){//这里是为了避免数组中的元素出现null的情况,直接跳过null元素的情况continue;}int len =s.length();if(len > max){max = len ;p.setFirst(s);}if (len < min){min = len;p.setSecond(s);}}return p;}}

       关于int max = Integer MIN_VALUE,max已经是int类型的最大值,然后怎么找到一个比它还大的值呢?min也一样,已经是最小了,怎么还找得到更小的值?应该是给max赋与int最小值,这样 len 的数就比max大。而int min = Integer MAX_VALUE,min已经是int类型的最小值,已经没有更小的了,因此就给min赋予int的最大值,这样子len的数就比min的小,那么len也就是最小的数了。





0 0
原创粉丝点击