加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala表中配置列名?

发布时间:2020-12-16 08:47:51 所属栏目:安全 来源:网络整理
导读:我正在编写一个 Scala程序来管理数据库,并将所有数据绘制到一个二维ArrayBuffer中,其中第0行是列名,后续行包含表中每个条目的信息. 当试图将它放入表中时,ho = w我是否要分配列标题? 语法建议将不胜感激. 伪代码: Data=ArrayBuffer()Data(0)={"Name","Birt
我正在编写一个 Scala程序来管理数据库,并将所有数据绘制到一个二维ArrayBuffer中,其中第0行是列名,后续行包含表中每个条目的信息.
当试图将它放入表中时,ho = w我是否要分配列标题?

语法建议将不胜感激.

伪代码:

Data=ArrayBuffer()
Data(0)={"Name","Birthday","ID"}
Data(1)={"Bob","07/19/1986","2354"}
Data(2)={"Sue","05/07/1980","2355"}
Data(3)={"Joe","08/12/1992","2356"}
Data(4)={"Jim","11/20/1983","2357"}

我想把它放到一个表中,其中Data(0)描述列标题,后续行描述表中的行,但我无法弄清楚如何设置行标题.

解决方法

将数据放入表中的最简单方法是使用其构造函数:

new Table (rowData: Array[Array[Any]],columnNames: Seq[_])

这里有点棘手的问题是数组不是协变的(见Why doesn’t the example compile,aka how does (co-,contra-,and in-) variance work?),这意味着Array [String]不是Array [Any]的子类型.所以你需要一种方法将一个转向另一个:地图完成工作.

此外,要显示列名,您需要将表放在ScrollPane中.

import swing._
import collection.mutable.ArrayBuffer

object Demo extends SimpleSwingApplication {

  val data = ArrayBuffer(
    Array("Name","ID"),Array("Bob","2354"),Array("Sue","2355")
  )

  def top = new MainFrame {
    contents = new ScrollPane {
      contents = new Table(
        data.tail.toArray map (_.toArray[Any]),data.head
      )
    }
  }
}

会给你一张桌子:

编辑:您还可以使用强制转换:data.tail.toArray.asInstanceOf [Array [Array [Any]]],这比映射更有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读