zoukankan      html  css  js  c++  java
  • C#与java中的集合区别

    集合一般的操作

          插入: add

          删除: remove

          查找: contains,remove

    java中的集合

    注意哪些是接口,哪些是实现类

    使用集合的时候

      1. 有无序,可否重复 

        –Set:无序、不可重复的集合
        –List:有序,可重复的集合
          --双向链表(LinkedList):对get和set调用花费常数时间,对插入和删除代价昂贵
          --动态数组(ArrayList): 对插入和删除开销小,对get花费昂贵(不容易做索引,但是可以通过索引访问)
        –Map:具有映射关系的集合
                       
                         插入一个元素:
                                     add(0,ob)   表头插入,LinkedList时间是O(1),ArrayList时间是O(N)
                                     add(ob)        表尾插入,LinkedList时间是O(1),ArrayList时间是O(1)
                         获取一个元素:
                                     get(i)           LinkedList时间是O(N)
                                                           ArrayList时间是O(1)      
                         搜索一个元素:
                                     两者都很低效。
                                     Contains的contains和remove两个方法都需要花费线性时间。   
               
                      ArrayList中有一个容量的概念。表示基础数组,可扩展。 trimToSize方法可以在所有ArrayList添加完成之后使用避免浪费空间;
     

    "Collection”和“Collections”是两个不同的概念。,”Collection”是集合层次的顶层接口,而”Collections”是提供了操作集合类型的静态方法的类。

     当我们操作集合的时候,如果觉得需要什么方法,都可以到Collections 类中来找
     
    C#中的集合
     C#中:
    凡是接口都是I开头的,所以List在java中是接口,而在C#中是类。
    List类型是可以使用索引的。只不过它在定义的时候是不指定大小的。
    所有集合相关类型都必须要实现一个接口,那就是IEnumerable,这也就是为什么不管是数组、还是集合、还是字典,都支持foreach操作的原因。
     所有集合接口的祖宗是IEnumerable,有点同java中的Iterator
     
     
     
  • 相关阅读:
    iOS中NSArray的过滤
    Android SurfaceView 的应用
    让你的模拟器不再卡:VirtualBox安裝 Androidx86 4.0
    SurfaceView 绘图覆盖刷新及脏矩形刷新方法
    ios iphone开发内存管理
    IOS上的socket通信
    【转载】反射之实例创建ConstructorInfo.Invoke 对比 Activator.CreateInstance
    cookie 和session 的区别详解
    LPC2132 调试记 (转)
    三极管开关电路基础
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3652156.html
Copyright © 2011-2022 走看看