在python/other语言中可以返回多个返回值,今天看核心卷的一个知识点做一个简单的笔记吧。
在我有一篇博客中我们可以使用org.omg.CORBA内的持有者(holder)像c语言的指针指针改变参数值,其实他的原理也就类似于在传入参数是类,在ntHolder,BooleanHolder中我们可以看见类中的value,这样就可以改变参数值了。
在实现Java返回多个值我们也可以参照这样的思路返回一个静态内部类。
package interfaces;
class ArrayAlg
{
public static class Pair
{
private double first;
private double second;
public Pair(double f,double s)
{
this.first = f;
this.second = s;
}
public double getFirst() {
return this.first;
}
public double getSecond(){
return this.second;
}
}
public static Pair PairMinMax(double[] values)
{
double min = Double.MAX_VALUE;
double max = Double.MIN_VALUE;
for(double x:values)
{
if(min > x)
min = x;
if(max < x)
max = x;
}
return new Pair(min, max);
}
}
public class StaticInnerClassTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] d = new double[20];
for(int i=0;i<d.length;i++)
{
d[i]=100*Math.random();
}
ArrayAlg.Pair pair = ArrayAlg.PairMinMax(d);
System.out.println("min="+pair.getFirst());
System.out.println("max="+pair.getSecond());
}
}
//结果:
min=1.200091803893344
max=95.61619727220089