一,基本概念

1,映射  

Map与HashMap与TreeMap,SotredMap等区别:

 1、HashMap键无序,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,在Map 中插入、删除和定位元素,HashMap 是最好的选择; 
2、LinkedHashMap 是HashMap的一个子类,键保存了插入的顺序,使用Iterator遍历时,得到的也是插入顺序的记录; 
3、TreeMap默认按键的升序排序,可以定制。 
4、HashTable 线程安全,键不能为null,与HashMap类似,但效率较低,HashMap如果需要实现同步,可以使用Collections. synchronizedMap或ConcurrentHashMap 。

课后习题4.2

/*
编写一段程序,从文件中读取单词。用一个可变映射来清点每个单词出现的频率。读取这些单词的操作可以使用java.util.Scanner: */
//method1
val in=new java.util.Scanner(new java.io.File("/home/user/people.txt"))
val map=new HashMap[String,Int]
while (in.hasNext()){
        map(in.next())=map.getOrElse(i,0)+1
}
map
//method2
val file=scala.io.Source.fromFile("/home/usr/people.txt").mkString
val tokens=file.split("\\s+")   //\\s表示   空格,回车,换行等空白符,+号表示一个或多个的意思,
val map=scala.collection.mutable.HashMap[String,Int]
for (word <- tokens)
    map[word]=map.getOrElse(word,0)+1
map

课后习题4.7

/*按格式打印出出所有Java系统属性的表格*/
import scala.collection.JavaConversions.propertiesAsScalaMap
val props:scala.collection.Map[String,String]=System.getProperties()
val keys=props.keySet
val keyLength=for (key <- keys) yield(key.length)
val maxKeyLength=keyLength.max
for ((k,v) <- props){
    print(k)
    print(" "*(maxKeyLength-k.length))
    print("|")
    println(v)
}

 二,类与对象

1,针对方法,带()多指改变了对象状态方法,而不带只是简单的读取

2,类构造方法@BeanProperty  var name:String=_:   内部类和 外部类可以调用getName()和setName()方法  加private时,只有内部类可以

  2.2 主构造函数法:class People(val name:String,private var age:Int)  name能被内部类和外部对象读取,age 能在内部类中读写,但不被外部访问

Scala快学笔记(二)

1,class Peo(private val  name:String)
val p=new Peo("z")
p.<tab>
asInstanceOf   isInstanceOf   toString (无name不可读和写)

,2,class Peo(val  name:String)
val p=new Peo("z")
p.<tab>
asInstanceOf   isInstanceOf   name   toString (name属性可读)

3,class Peo( var  name:String)
val p=new Peo("z")
p.<tab>
asInstanceOf   isInstanceOf   name   name_=   toString  (name,可读和可写)

4,class Peo( private var  name:String)
val p=new Peo("z")
p.<tab>
asInstanceOf   isInstanceOf   toString (无name不可读和写)
View Code

相关文章:

  • 2021-04-27
  • 2021-12-31
  • 2022-12-23
  • 2021-12-23
  • 2021-10-19
  • 2021-08-27
猜你喜欢
  • 2021-11-10
  • 2022-03-02
  • 2021-07-08
  • 2022-01-17
  • 2021-09-18
  • 2021-11-08
  • 2021-09-25
相关资源
相似解决方案