为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Smart猫小萌 2021-09-03 17:15:23
我是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 在函数调用中使用按值传递时,我如何实现这一点?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

你知道java流吗?使用流,您可以执行以下操作:


List<Object> result = objects.stream()

     .filter(object -> {/*add condition here*/})

     .map(object->{/*do something with object that match condition above*/})

     .collect(Collectors.toList()); 

您可以使用此机制根据特定条件收集和处理对象。


如果这没有帮助,也许使用迭代器?


Iterator<Object> it = objects.iterator();

while(it.hasNext()){

    Object node = someFunction(session,it);

}


public Object someFunction(Session session,Iterator i){

   //manipulate i value based on condition

   if(true){

      i.next();

   }else{

      i.next();

      i.next();

   }

}


查看完整回答
反对 回复 2021-09-03
?
阿晨1998

TA贡献2037条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-09-03
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信