title: Scala append and prepend method performance
body: <p>I was following a Scala video tutorial and he mentioned prepend <code>::</code> takes constant time and append <code>:+</code> time increases with length of list. And, also he mentioned most of the time reversing the list prepending and re-reversing the list gives better performance than appending. </p>
  
  <p><strong>Question 1</strong><br>
  Why prepend <code>::</code> takes constant time and append <code>:+</code> time increases with length of list?  </p>
  
  <p>But reason for that is not mentioned in the tutorial and I tried in google. I didn’t find the answer but I found another <a href="http://docs.scala-lang.org/overviews/collections/performance-characteristics.html" rel="nofollow">surprising thing</a>.  </p>
  
  <p><strong>Question 2</strong><br>
  ListBuffer takes constant time for both append and prepend. If possible why it wasnt implemented in List?</p>
  
  <p>Obvious there would be reason behind! Appreciate if someone could explain.</p>