1、Scala中List、Map、Set等各类型函数操作汇总package com.scala.studyimport scala.collection.immutable.{Queue, TreeMap}import scala.collection.mutable/** * Created by HP-PC on 2016/5/26. */object ScalaCaseDemo { def main(args: Array[String]): Unit = { println(1 :: 2 :: List(3, 4)) //单个元素联合List:List(1, 2, 3, 4) //两个List进行联合成一个List:List(1, 2, 3, 4) println(List(1, 2) ::: L...
package com.dt.scala.listobject ListBuffer_Internals {def main(args: Array[String]): Unit = {val list = List(1,2,3,4,5,6,7,8,9)increment(list)increment_MoreEffective(list)increment_MostEffective(list)}def increment(list :List[Int]) : List[Int] = list match {//函数建立堆栈需要消耗大量的内存case List() => List()case head :: tail => head + 1 :: increment(tail)}def increment_MoreEffective(list : List[...
object ListDemo {def main(args: Array[String]): Unit = {//ListBufferval listBuffer = ListBuffer(1,2,3)val listBuffer1 = ListBuffer(88,99)//添加元素,可变集合,list本身发生变化,而不是返回新的listlistBuffer += 4listBuffer.append(5,6)//添加整个集合(扁平)listBuffer ++= listBuffer1//++=的展开写法,需要接收返回值,也是ListBufferval listBuffer2 = listBuffer ++ listBuffer1println(listBuffer)println(listB...
问题展示
在 Scala 编程中经常会使用 Java 的集合类型,但是使用中会出现如下错误:
java.util.List[String]Error:(28, 21) value foreach is not a member of java.util.List[String]for(line <- lines){2.java.util.Set[String]Error:(24, 29) value foreach is not a member of java.util.Set[String]for (key <- reducedList.keySet) {^3.java.util.ArrayList[Object]Error:(21, 22) value filter is not a member of java.uti...
我需要在Java中实现一个返回Scala Seq的方法.
但我遇到这个错误:java.util.ArrayList cannot be cast to scala.collection.Seq到目前为止,这是我的代码:@Override
public Seq<String> columnNames() {List<String> a = new ArrayList<String>();a.add("john");a.add("mary");Seq<String> b = (scala.collection.Seq<String>) a;return b;
}但是scala.collection.JavaConverters似乎没有提供转换为Seq的可能性.解决方法:JavaConve...
我想基于另一个java Collection创建一个java List.位于斯卡拉.
为什么这不可能?我得到了一个必需的:scala.this.Int错误.val in: java.util.Set[String] = new java.util.HashSet()
val out : java.util.List[String] = new java.util.ArrayList(in)然而,这有效,但感觉不对:val in: java.util.Set[String] = new java.util.HashSet()
val out: List[String] = new java.util.ArrayList()out.addAll(in.asInstanceOf[java.util.Se...
我定义了这样的scala特征:trait Example {def func: Int => Int
}编译器允许我通过以下方式实现它:class SomeClass extends Example {def func = Map(1->2, 3->4)
}我可以用List替换Map它仍然可以工作.我的问题是:为什么?我不是将func声明为需要作为函数实现的函数文字吗?
在更深层次上,scala的编译器如何检查函数签名?
谢谢你!解决方法:Int => Int desugers to Function1 [Int,Int]. Map [K,V]和List [A]都将Function1 [A,...
我正在尝试从Java代码实例化Kafka Scala案例类,它具有以下签名:case class OffsetFetchRequest(groupId: String,requestInfo: Seq[TopicAndPartition],versionId: Short = OffsetFetchRequest.CurrentVersion,correlationId: Int = 0,clientId: String = OffsetFetchRequest.DefaultClientId)除了Seq [TopicAndPartition]之外,我能够发送所有请求的参数.
在Java方面,我有以下代码:OffsetFetchRequest offsetFetchRequest = new O...
我在Scala对象中定义了以下列表:object Foo {val bar = List(1, 2, 3)
}这似乎成为了一个scala.collection.immutable.List< Object>当我尝试从Java使用它时.因此,我必须使用像Foo.bar()这样的getter.应用$mcII $sp(i)或者使用强制类型转换为Integer / int.
为什么泛型类型是Object而不是Integer?对于以Java原语存在的类型,似乎也只是这种情况;列表[MyType]变为List< MyType>在斯卡拉.解决方法:我遇到了一个类似的问题,Swagger对S...
在Scala和Java混合的项目中,我需要在代码的Scala部分中将Java Set转换为Java List.
有哪些有效的方法可以做到这一点?我可能会使用JavaConverters来转换Java Set – > Scala Set – > Scala列表 – > Java列表.还有其他更有效的选择吗?
谢谢解决方法:Java集合类提供了一个带有Collection的构造函数,那么为什么不使用它呢?def js2jl[A](s: java.util.Set[A]): java.util.List[A] = new java.util.ArrayList(s)没有Scala特定的语...