猿问

JAVA Pass Primitive 类型作为函数调用的引用

我是java新手。我需要将原始类型值作为函数调用中的引用传递。我不想从函数返回 i 值,因为它已经返回了一些对象。


for (int i = 0; i < objects.size();) {

  // here it should fetch that object based on i manipulated in function

  Object obj = objects.get(i)

  Object node = someFunction(session,obj,i);

  // push node in nodes array

}

public Object someFunction(Session session,Object obj,int i){

   //manipulate i value based on condition

   if(true){

      i = i + 1;

   }else{

      i = i + 2;

   }

}

当 JAVA 在函数调用中使用按值传递时,我如何实现这一点?


Smart猫小萌
浏览 175回答 3
3回答

桃花长相依

你知道java流吗?使用流,您可以执行以下操作:List<Object> result = objects.stream()&nbsp; &nbsp; &nbsp;.filter(object -> {/*add condition here*/})&nbsp; &nbsp; &nbsp;.map(object->{/*do something with object that match condition above*/})&nbsp; &nbsp; &nbsp;.collect(Collectors.toList());&nbsp;您可以使用此机制根据特定条件收集和处理对象。如果这没有帮助,也许使用迭代器?Iterator<Object> it = objects.iterator();while(it.hasNext()){&nbsp; &nbsp; Object node = someFunction(session,it);}public Object someFunction(Session session,Iterator i){&nbsp; &nbsp;//manipulate i value based on condition&nbsp; &nbsp;if(true){&nbsp; &nbsp; &nbsp; i.next();&nbsp; &nbsp;}else{&nbsp; &nbsp; &nbsp; i.next();&nbsp; &nbsp; &nbsp; i.next();&nbsp; &nbsp;}}

阿晨1998

在 Java 中,原始类型总是按值传递。要通过引用传递,您应该定义一个类并将原始类型放入其中。如果您传递 Integer 类它不起作用,因为这个类是不可变的并且值不会改变。

慕的地6264312

您可以使用单一类型的数组来int[]快速解决问题并增加其内部值。这不会改变数组本身,只会改变它的内容。
随时随地看视频慕课网APP

相关分类

Java
我要回答