Liste de collection Scala, ListBuffer et Queue

Répertoire d'articles

Lister

La liste dans scala est différente de javaList. La liste en java est une interface. L'accès réel aux données est ArrayList
et la liste dans scala peut stocker directement des données. Par défaut, la liste de Scala est immuable. La liste est une séquence
Exemple d'opération Seq :

def testList(): Unit ={
    
    
    //默认使用不可变集合
    val list1= List(1,2,3);
    //list1
    println(list1)
    val list2 = Nil//声明空结合
    println(list2)
    //访问元素
    println(list1(1))
    //:+在最后追加元素
    var list3=list1:+4;
    println(list3)
    //追加后原集合不变 产生一个新的集合
    println(list1)
    //+: 在集合前边追加元素
    var list4 = 10+:list1
    println(list4)

    val list5= 4::5::6::list1::Nil
    /*

    1)符号::表示向右边的集合中添加元素
    2)运算时集合对象一定要放在最右边,左侧元素被添加到集合中 运算顺序 从右向左
    3):::运算符号是将集合中的每个元素加入到右侧集合中去 运算符的左右必须都是集合

    步骤说明
    1)List()
    2)list(List(1,2,3))
    3)List(6,List(1,2,3))
    4)List(5,6,List(1,2,3))
    5)List(4,5,6,List(1,2,3))
     */
    println("list5:"+list5)
    val list6 = 4::5::6::list1:::Nil
    /*
    步骤说明
    1)List()
    2)list(1,2,3)
    3)List(6,1,2,3)
    4)List(5,6,1,2,3)
    5)List(4,5,6,1,2,3)
    */
    println("list6:"+list6)

}

ListBuffer

ListBuffer est une collection de listes de variables, vous pouvez ajouter ou supprimer des éléments, ListBuffer appartient à la séquence
Exemple:

  def test(): Unit ={
    
    
    import scala.collection.mutable.ListBuffer
    //创建集合
    val list1 = ListBuffer[Int](1,2,3);
    println(list1(1))//访问集合元素数
    //遍历集合
    for(item <-list1){
    
    
       println(item)
    }

    //动态增加元素
    list1+=4; //在最后位置追加元素
    list1.append(5)//在最后位置追加元素
    println(list1)//ListBuffer(1, 2, 3, 4, 5)

    var list2=new ListBuffer[Int]();
    list2 ++=list1
    //list1.append(5)//在最后位置追加元素
    println(list2)//ListBuffer(1, 2, 3, 4, 5)
    var list3 = list2:+5
    println("list3:"+list3)//list3:ListBuffer(1, 2, 3, 4, 5, 5)
    println("list2:"+list2)//list2:ListBuffer(1, 2, 3, 4, 5)

    //元素删除
    list2.remove(0)//根据下标删除元素
    println("list2:"+list2)//list2:ListBuffer(2, 3, 4, 5)
  }

File d'attente

1) La file d'attente est une liste ordonnée. La couche inférieure peut être réalisée par tableau ou liste chaînée.2
) Suivez le principe du premier
entré, premier sorti.3) La file d'attente dans scala peut utiliser directement Queue, scala.collection.mutalbe.Queue et scala.collection.immutalbe. Queue utilise des files d'attente de collecte de variables dans le développement général

 def test(): Unit ={
    
    
    //队列创建
    var q1= new mutable.Queue[Any]()
    println("q1:"+q1)
    //添加元素
    q1+=1
    println("q1:"+q1)
    //添加集合中的元素
    q1 ++= List(2,3,4)//追加List中的元素 List到末尾
    println("q1:"+q1)
    //添加元素
    q1 += List(5)   //将list追加到队列中
    q1.enqueue(10,11,12)//入队列 追加元素到队列尾部
    println("q1:"+q1)

    //删除元素
    //从队列头取出一个元素
    var ele=q1.dequeue();
    println("ele:"+ele)
    println("q1:"+q1)  //Queue(2, 3, 4, List(5), 10, 11, 12)
    //获取队列中的元素 但不删除
    println("head:"+q1.head)//2
    println("q1:"+q1) //Queue(2, 3, 4, List(5), 10, 11, 12)
    println("last:"+q1.last)//12
    println("q1:"+q1)//Queue(2, 3, 4, List(5), 10, 11, 12)
    println("tail:"+q1.tail)//Queue(3, 4, List(5), 10, 11, 12)
    println("q1.tail.tail.tail:"+q1.tail.tail.tail)
  }

Je suppose que tu aimes

Origine blog.csdn.net/zhangxm_qz/article/details/107617009
conseillé
Classement