caseclass
1.Set是可以去重的 2.创建一些对象,把他们装入Set,看看是否能去重!
package caseClass
object classClass01 {
class Stu(var name:String, var age:Int) {
override def equals(obj: Any): Boolean = {
val other =obj.asInstanceOf[Stu]
other.age == age && other. name ==name
}
override def toString = s"Stu(${name},${age})"
}
def main(args: Array[String]):Unit = {
val stu1 = new Stu("小花",18)
val stu2 = new Stu("小花",18)
println(stu1)
println(stu1 == stu2)
val set1 = Set(stu1,stu2)
println(set1)
}
}
样例类:相比普通类,它有三点不同
1.在创建对象时,可以省略new 2.默认情况下,属性都是只读的 3.自己自动添加相关的equals,toString等方法
package caseClass
object classClass02 {
case class Stu(name:String,age:Int)
def main(args: Array[String]): Unit = {
val stu1 = Stu("小花",18)
val stu2 = Stu("小花",18)
println(stu1)
println(stu1 == stu2)
val set1 = Set(stu1,stu2)
println(set1)
}
}
迭代器
class iterator02 {
def main(args: Array[String]): Unit = {
val it = List(1,2,3,4).iterator
val it1 = it.drop(2)
while(it1.hasNext){
println(it1.next())
}
}
}
class iterator02 {
def main(args: Array[String]): Unit = {
val it = List(1,2,3,4,5,6,7,8,9,10).iterator
val it1 = it.drop(5).take(4)
while(it1.hasNext){
println(it1.next())
}
}
}
class iterator02 {
def main(args: Array[String]): Unit = {
val it = List(1,2,3,4,5,6,7,8,9,10).iterator
val (it1,it2) = it.duplicate
val it3 = it1.take(3)
while(it3.hasNext){
println(it3.next())
}
println("------------------")
while(it2.hasNext){
println(it2.next())
}
}
}
package caseClass
object iterator03 {
def main(args:Array[String]):Unit = {
val it1 = List(1,2,3,4,5,6).iterator
val it2 = List("one","two","three","four","five").iterator
val it3 = it1.zip(it2)
while(it3.hasNext){
val rs = it3.next()
println(rs._1,rs._2)
}
}
}
如何依次输出五个元素
package caseClass
object iterator01 {
def main(args:Array[String]):Unit = {
val list = List(1,2,3,4,5)
list.foreach(ele => println(ele))
val it = list.iterator.drop(2).take(2)
while(it.hasNext){
println(it.next())
}
}
}