List不支持“随机访问”,这意味着要从列表中获取第五个元素要比第一个元素花费更多的工作,因此没有任何List.get nth list功能。必须从头开始(1 -> 2 -> 3 -> 4 -> 5)。
如果您需要随机访问,则使用随机访问数据结构(例如)可能会获得更好的结果(和性能)Array,其中采用第一个元素所需的工作量与获取第1000个元素的工作量相同。(复杂度O(1))。
但是,有可能(但不鼓励)获得第n个元素:
get : Int -> List a -> Maybe a get nth list = list |>List.drop(nth - 1) |> List.head fifth : Maybe Int fifth = get 5 [1..10] -- = Just 5 nonexistent : Maybe Int nonexistent = get 5 [1..3] -- = Nothing
同样,nth论点越大,这需要花费更多的工作。
问题内容: 可以说我有: 我想检索每个内部列表的第一个元素: 无需执行此操作(我当前的hack): 我敢肯定有一个班轮,但我真的不知道我在寻找什么。 问题答案: 只需将您的列表组合更改为: 要么: 或者,如果您要处理“适当的数组”: 和:
问题内容: 是否有一些函数可以从某些列表中返回N个最高元素? 即,如果返回单个最高元素sth。就像会给我返回10个最高数字的列表(如果较小则更少)。 或获得这些有效的简便方法是什么?(除了明显的规范实现;而且,没有这样的事情需要首先对整个列表进行排序,因为与规范解决方案相比效率不高。) 问题答案: :
下面是一个函数,它将获得一个嵌套的ArrayList、index,并返回每个子列表的第n个元素。 例如。对于,,函数将返回 我已经找到了一个可以打印出来的版本: 如何将结果汇总成清单?
问题内容: 我想知道是否有替代 使用 流 ? 问题答案: 定制收集器可以这样写: 并像这样使用它:
假设我有这样一个列表: 是否可以使用Java8流从该列表中每隔一秒获取一个元素以获得以下内容? 或者甚至每三个元素? 基本上,我正在寻找一个函数来获取流的每n个元素:
问题内容: 我正在尝试在Oracle中使用SQL获取逗号分隔的字符串中的第n个元素。 到目前为止,我有以下内容。 但是当元素为空时它不起作用,即,任何人都可以帮忙吗? 问题答案: 如果定界的值在逗号之间始终是字母数字,那么您可以尝试: 获取第七个值(包括结尾的逗号)。如果为空,则只需输入逗号(可以轻松删除)。 显然,如果您想要的值不是第七个,则将第四个参数值更改为想要的第n个出现率,例如 编辑:因