scala java迭代器的转换

以kafka consumer代码为例

//对应包
import scala.collection.JavaConversions
import scala.collection.convert.Decorators
import scala.collection.JavaConverters._

// records类型为ConsumerRecords<K, V>

while(true){
      val records = consumer.poll(100)
      //迭代方式1
      val it=records.iterator()
      while (it.hasNext){
        if(f(it.next().value())){
          LOGGER.info("success deal getByLine")
        }
      }
    //迭代方式2,java Map转scala
      val it=records.iterator()
      val res = JavaConversions.asScalaIterator[ConsumerRecord[String, String]](it)
    for(re:ConsumerRecord[String,String] <- res){
        if(f(re.value())){
          LOGGER.info("success deal getByLine")
        }
      }

    //迭代方式3,java Map转scala
      for(re:ConsumerRecord[String,String] <- records.asScala){
        if(f(re.value())){
          LOGGER.info("success deal getByLine")
        }
      }
    }

转载于:https://www.cnblogs.com/lwhp/p/7464412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值