zoukankan      html  css  js  c++  java
  • [Scala]集合中List元素转Tuple元素的函数迭代写法

    ____

    本文链接:

    https://www.cnblogs.com/senwren/p/Scala-Lis-2-Tuple.html

    ——

    Scala没有提供相应写法,

    但迭代写法仍然可以做到。

    有两种写法

    1:

    object Xxx extends App{
        val res = List(List("a", 2), List("c", 3) )
                .map{_ match {case List(w,c)=> w->c } }
        println(res)
    }
    

    2:

    object Xxx extends App{
        val res = List(List("a", 2), List("c", 3) )
                .collect{case l:List[Any]=> l(0)->l(1) } }
        println(res)
    }
    

    方法1会在外层集合中有不符合结构要求的List存在时报错。

    方法2则是只会把元素List的前两个留下。

    具体根据实际情况,可有相应的灵活变化的写法来应对。

    如转换前集合元素不是List而是Array,

    或者集合中的集合元素的元素的个数不是两个而是三个的时候。

    方法2不会报错,但会丢数据,方法1反之。

    根据需求选择:

        如果明确原始元素只需要留下前几个(我还没研究后几个要咋写),知道外层集合内的集合元素内的元素个数不固定且无所谓丢不丢,就用方法2;

        如果明确,外层集合内的集合元素内的元素个数必须是固定的,如果不是这样需要得到一个提醒,那就用方法1,因为不符合结构的外层集合中的集合元素若存在,就会报错,coder便会得到编译器的提醒,从而能够及时查找输入数据(即方法1中.map()之前形成的数据对象)的问题。

    __________

    Copyright: 本文为原创-未经允许不可商用-转载请注明来源

  • 相关阅读:
    20191028 Codeforces Round #534 (Div. 1)
    20191028 牛客网CSP-S Round2019-1
    UVA11464 Even Parity 搜索+递推
    CSP2019-S1 游记
    LG2921 [USACO2008DEC]Trick or Treat on the Farm 内向基环树
    bzoj 2002 Bounce 弹飞绵羊
    快速乘,快速幂,十进制快速幂,矩阵快速幂
    2019牛客暑期多校训练营(第五场) generator 1
    2019牛客暑期多校训练营(第五场) digits 2
    hdu 4714 Tree2cycle
  • 原文地址:https://www.cnblogs.com/senwren/p/Scala-Lis-2-Tuple.html
Copyright © 2011-2022 走看看