标签: seq

将Java List转换为Scala Seq

我需要在Java中实现一个返回"Seq"的方法但是我遇到错误,我不知道如何解决它.

java.util.ArrayList cannot be cast to scala.collection.Seq
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的代码

@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;
}
Run Code Online (Sandbox Code Playgroud)

Seq似乎没有提供转换为的可能性scala.collection.JavaConverters.谢谢

java scala seq scala-java-interop

23
推荐指数
6
解决办法
4万
查看次数

生成系列1,2,1,3,2,1,4,3,2,1,5,4,3,2,1

我正在尝试生成一个包含增加的反向系列的向量,例如1,2,1,3,2,1,4,3,2,1,5,4,3,2,1.

我尝试使用循环,但我不知道如何堆叠或连接结果.

for (i in 1:11)
 {
 x = rev(seq(i:1))
 print(x) 
 }
[1] 1
[1] 2 1
[1] 3 2 1
[1] 4 3 2 1
[1] 5 4 3 2 1
[1] 6 5 4 3 2 1
[1] 7 6 5 4 3 2 1
[1] 8 7 6 5 4 3 2 1
[1] 9 8 7 6 5 4 3 2 1
[1] 10  9  8  7  6  5  4  3  2  1
[1] …
Run Code Online (Sandbox Code Playgroud)

r series seq rep

22
推荐指数
4
解决办法
2655
查看次数

如何在zsh中填充数字变量(也许还​​有bash?)

在zsh中,当我必须使用zsh创建一堆文件时,我通常会执行以下操作:

for x in $(seq 1 1000); do .....; done
Run Code Online (Sandbox Code Playgroud)

这工作得很好,它给我的文件与名foo-1.txt.. foo-1000.txt.
但是,这些文件不排序很好,所以我想零垫的$x变量,从而产生的名称foo-0001.txt.. foo-1000.txt.

如何在zsh中这样做?(和奖金问题,如何在bash中做到这一点?)

linux bash zsh zero-pad seq

18
推荐指数
4
解决办法
2984
查看次数

为什么clojure集合不直接实现ISeq接口?

据说clojure中的每个集合都是"sequable",但只有list和cons实际上是seqs:

user> (seq? {:a 1 :b 2})
false
user> (seq? [1 2 3])
false    
Run Code Online (Sandbox Code Playgroud)

所有其他seq函数首先将集合转换为序列,然后才对其进行操作.

user> (class (rest {:a 1 :b 2}))
clojure.lang.PersistentArrayMap$Seq
Run Code Online (Sandbox Code Playgroud)

我做不到这样的事情:

user> (:b (rest {:a 1 :b 2}))
nil
user> (:b (filter #(-> % val (= 1)) {:a 1 :b 1 :c 2}))
nil
Run Code Online (Sandbox Code Playgroud)

并且必须强制回到具体的数据类型.这对我来说看起来很糟糕,但很可能我还没有得到它.

那么,为什么Clojure的收藏都不能直接实现ISEQ接口和所有序列函数不返回相同的类的对象作为输入对象?

clojure sequence seq

18
推荐指数
2
解决办法
2325
查看次数

创建跨多个数量级的日志序列

为了在ggplot2图表中设置对数刻度的自定义中断间隔,我从多个序列创建了以下向量.

breaks <- c(seq(2000, 10000, by = 1000),
        seq(20000, 100000, by = 10000),
        seq (200000, 1000000, by = 100000),
        seq (2000000,10000000, by = 1000000),
        seq (20000000,100000000, by = 10000000))
Run Code Online (Sandbox Code Playgroud)

这是快速而又脏的,但它在日志间隔内给出了2,000到100,000,000的所需休息时间.

> breaks
 [1] 2e+03 3e+03 4e+03 5e+03 6e+03 7e+03 8e+03 9e+03 1e+04 2e+04 3e+04 4e+04
[13] 5e+04 6e+04 7e+04 8e+04 9e+04 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05
[25] 8e+05 9e+05 1e+06 2e+06 3e+06 4e+06 5e+06 6e+06 7e+06 8e+06 9e+06 1e+07
[37] 2e+07 3e+07 4e+07 5e+07 6e+07 7e+07 8e+07 9e+07 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 seq

17
推荐指数
3
解决办法
1万
查看次数

scala .seq vs .toSeq

在Scala文档中,集合同时定义了.seq和.toSeq方法.它们之间有什么区别,为什么它们都存在?我无法通过阅读Scala集合文档来解决这个问题.

collections scala seq

16
推荐指数
1
解决办法
7748
查看次数

与直接"IEnumerable <T>"实现相比,具有while与for-do理解的序列的性能

(对不起,很长的帖子,直接跳到问题,见底部)
(更新:如果您正在重新访问,请参阅标记为"更新"的部分;)

我让自己更好地了解F#序列引擎盖下发生了什么.我需要优化的任务包括将字符串转换为Unicode代码点序列,我想知道是否可以在不牺牲太多性能的情况下将我们使用的可变循环替换为不可变循环.

其中一个挑战是返回的序列与输入序列的长度不同,因为代理对一起返回一个整数.这是原始代码,如下所示:

let stocp0(value: string) : seq<int> =
    let pos = ref 0
    seq {
        while !position < value.Length do
            let c = System.Char.ConvertToUtf32(value, !pos)
            pos := !position + if c >= 0x10000 then 2 else 1
            yield c
    }
Run Code Online (Sandbox Code Playgroud)

尝试1: for-do

我认为最简单的方法是将其转换为for-do循环(不是for-for-do循环,它们有太多的额外开销):

let inline stocp1(value: string) =
    seq {
        for i = 0 to value.Length - 1 do
            if(not <| Char.IsLowSurrogate(value.[i])) 
            then yield Char.ConvertToUtf32(value, i)
    }
Run Code Online (Sandbox Code Playgroud)

这比上面的可变对应物慢了3.2倍.比我想象的更高的因素.

尝试2: Seq.mapi

由于字符串已经是一个序列(好的,有一个IEnumerable<char>包装器)我想用它来Seq模块中的现有序列函数,希望这可能会带来更好的性能:

let inline stocp2(value: …
Run Code Online (Sandbox Code Playgroud)

performance ienumerable f# seq

15
推荐指数
1
解决办法
827
查看次数

(zsh大括号扩展| seq)用于角色列表 - 怎么样?

Bash允许我写声明,

$ for i in {h..k} ; do echo $i ; done
Run Code Online (Sandbox Code Playgroud)

但是zsh只允许数字列表扩展,例如{8..13}.

什么是最好的解决方法?像字符seq的东西......

zsh character seq brace-expansion

14
推荐指数
2
解决办法
3095
查看次数

如何使用Bash命令计算pi

我正在学习bash脚本.在探索数学函数时,我遇到了一个计算pi值的命令.

seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -l
Run Code Online (Sandbox Code Playgroud)

虽然我理解基本的seq命令是如何工作的,但我无法理解上述命令是如何工作的.任何人都可以澄清它是如何工作的.

bash shell bc seq

14
推荐指数
3
解决办法
1万
查看次数

将Seq转换为ArrayBuffer

有没有简洁的方法来转换SeqArrayBufferScala?

scala seq arraybuffer

13
推荐指数
2
解决办法
1万
查看次数