java - 在一个函数调用中返回两个结果?

air*_*net 3 java

我正在尝试做这样的事情:

 public void <String,int> getItem
 { 
   return <"Jen",23>;
 }
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用自定义类,但是如何在一个函数调用中返回两个结果.

1 - 上面的模板功能是否可以在java中使用,以及调用者如何获得它的第1部分和第2部分.

2 - 我可以使用actionscript中的关联数组吗?

3 - 我可以使用某种哈希映射吗?

4 - 有什么其他可能的方式

我尝试了所有三种方式,但是这种或那种语法正在打击我.所以如果有人能给出明确的例子

mae*_*ics 10

Java函数始终返回单个值,因此您唯一的选择是返回包含多个值的"集合"对象,例如Array或适当的Collection.例如:

public Object[] getItem() { return new Object[] { "Jen", 23 }; }
public Collection<Object> { return Arrays.asList("Jen", 23); }
Run Code Online (Sandbox Code Playgroud)

虽然,Java中的典型模式是返回封装您的值的自定义类型,例如:

public class NameAge {
  public final String name;
  public final int age;
  public NameAge(String name, int age) {
    this.name = name;
    this.age = age;
  }
}
// ...
public NameAge getItem() { return new NameAge("Jen", 23); }
Run Code Online (Sandbox Code Playgroud)

或者更一般地说:

public class Pair<X, Y> {
  public final X x;
  public final Y y;
  public Pair(X x, Y y) {
    this.x = x;
    this.y = y;
  }
}
// ...
public Pair<String,Integer> getItem() {
  return new Pair<String,Integer>("Jen", 23);
}
Run Code Online (Sandbox Code Playgroud)

当然,如果要将这些自定义类型用作哈希键,则会对哈希(相等和哈希码)产生严重影响.