最开始说一下我使用的解决办法:Pair 和 Triple
偶然看到这个问题,浏览量也很大,还是写一下我认为最好的办法吧,跟大家交流一下。
说一下前面的人答的方案,都可以解决问题,但是觉得不太好。您要是说 可以解决问题就行,那我无话可说。写代码如果只是为了完成任务,不考虑实现是否优雅 和咸鱼有什么区别呢。
数组明显不合适,数组适合放同一类型的数据,当然,你可以使用List<Object>,用Object 放结果,调用方需要知道Object的实际类型并做强制转换,不够优雅,差评
Map<String,Object> 是一种能解决问题的做法,使用Object 来放结果也存在调用方需要知道其实际类型并做强转的问题,用key 作区分,方法调用者需要知道方法内部的key ,即使使用全局变量做key 也不够优雅
自定义对象,新建一个类,例如 public class DoubleResult<A, B>{getter; allArgsConstructor;}、public class TripleResult<A, B, C>{getter; allArgsConstructor;
} ,效果棒棒的
接下来要说的 Pair 和Triple 就是上面第三种方案的实现。org.apache.commons.lang3.tuple.Pair,org.apache.commons.lang3.tuple.Triple 是commons-lang包里的两种元组类型。Pair<L,R>可以存两个数据,Triple<L,M,R> 可以存三个,再多 那么考虑一下你的方法是否可以拆一下。
简单说一下他们的用法吧。
Pair 初始化:
例:Pair.of("a","b");
或:
Pair<Object,Object> pair = new Pair<Object, Object>() { Triple 初始化:
或:
Pair 获取内容:
pair.getKey(); Triple 获取内容:
另外org.apache.commons.lang3.tuple 包下还有ImmutablePair、ImmutableTriple、MutablePair、MutableTriple 分别对应两种结构的不可变和可变类型,大家可以自行探索。
java 如何能在一个方法中返回多个值?
比如方法是\\x0d\\x0apublic List Test()\\x0d\\x0a{\\x0d\\x0a ...\\x0d\\x0a List list = new ArrayList();\\x0d\\x0a list.add(你要的值1);\\x0d\\x0a list.add(你要的值2);\\x0d\\x0a 下面依次类推\\x0d\\x0a 最后\\x0d\\x0a return list;\\x0d\\x0...
java 如何能在一个方法中返回多个值?
Map<String,Object> 是一种能解决问题的做法,使用Object 来放结果也存在调用方需要知道其实际类型并做强转的问题,用key 作区分,方法调用者需要知道方法内部的key ,即使使用全局变量做key 也不够优雅 自定义对象,新建一个类,例如 public class DoubleResult<A, B>{getter; allArgsConstructor;}、p...
在java里,一个方法能返回多个值吗
可以返回一个对象,对象可以封装多个属性 比如:return user;这个就是返回user这个对象,这个对象可以有学号,姓名,性别等属性 通过user.getName()获得姓名,user.getNumber()获得学号等
java一个类可以有两个返回值吗?
1、java是强匹配的,调用方法,对应的参数必须要有值,如果不是必须传的,意思是你可能不需要用的,可以传null 2、或者改造原有的方法参数,把多余的参数去掉 3、或者另外写一个方法,少参数的,然后该方法内部,调用原来的方法 4、代码截图如下:5、看代码,13行的,就相当于调用少一个参数的 ...
JAVA中一个方法能同时返回2个值么
java中return语句不能同时返回两个值。java中return作为程序结束语句,return后直接会结束函数,同时返回一个返回值,这个返回值的类型是在函数方法上声明好了的,例如public int add(int a,int b){。。。;return a+b;},所以return有且仅有一个返回值。但如果想要返回两个以上的值:可以使用...
java方法如何返回多个值?
} public void setQuote(double quote) { this.quote = quote; } @Override public String toString() { return "CalculationResult{" + "sum=" + sum + ", discrepancy=" + discrepancy + ", product=" + product + ", quote=" + quote + '}'...
java 面向对象中 方法里面可以返回多个数据吗 给给满分
通过改变对象的成员变量来实现改变。所以,一种办法是设置成员变量,然后传递的值赋给成员变量。通过更改成员变量来更改传递的值。还有一种是把值放到一个list列表中,然后通过修改List对象来实现值得更改。你只要了解了Java的内存机制,你就会发现基本参数值是无法通过成员方法更改的。
在一个java方法中如何返回两个参数的值?
接受后截取或分割。注:分隔符的话,建议使用诸如逗号(,)之类不常使用的符号,&在java里是运算符。有时会产生不必要的麻烦。看个人喜好。3.可以传进去一个对象,然后更改其属性值。执行方法后直接访问对象属性就好了。(个人认为:有时会有用,这样其实可以接收出来多个值,而且,可以共享对象,避免...
JAVA的方法中是否可以有多句return语句
可以有n个return,但是必须在不同的逻辑条件下。比如情况A的时候return x, 情况B的时候return y。其实就是“return”这个关键字可以出现多回,但是某个方法在被调用的时候只能返回一个值。
Java一个方法返回两个不同的类型值怎么处理?
一个函数需要返回两个值的话 可以根据你自己的需求决定是用强类型还是弱类型 强类型的话 比较安全 但是写起来比较麻烦 代码也不是很美观 弱类型的话 代码比较优美一点 但是相对的 需要对类型判断好 \/\/ 强class Data{ ValueA a; ValueB b;}public Data function(){ ... Data data ...