J2SEI:集合类

作者: _Jun | 来源:发表于2020-11-24 15:45 被阅读0次

    什么是集合类?

    集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。

    集合类型主要有:

    map(映射):

    其主要实现类有HashMap、TreeMap;

    Map对值没有唯一性要求,对健要求唯一,如果加入已有的健,原有的值对象将被覆盖;

    Hashtable基于线程安全,效率低,古老,
    HashMap基于非线程安全,效率高。

    Collection:

    collection是最常见的集合的上级接口。

    继承自collection的常用接口有List,Set,都是单列的集合。

    set(集):

    1)Set实现的基础是Map(HashMap);

    2)主要实现类有HashSet、TreeSet;

    ​ HashSet(),调用对象的hashCode()方法,获得哈希码,然后再集合中计算存放对象的位置。

    ​ TreeSet(),继承ShortedSet接口,能够对集合中对象排序。

    3)Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象;

     public class SetTest {
    
        public static void main(String[] args) {
          Set set=new HashSet();
           //添加数据
          set.add("abc");
          set.add("cba");
          set.add("abc");//故意重复
          set.add(123);
          set.add(true);
     
          System.out.println("集合元素个数:"+set.size());
           //遍历出集合中每一个元素
          Iterator it=set.iterator();
          while(it.hasNext()){
            System.out.println(it.next());
           }
        }
      }
    

    【通过java的equals()方法判别。如果有特殊需求须重载equals()方法。】

    list(列表):

    主要实现类:

    LinkedList:实现了链表结构,底层双向链表,查询慢,增删快;

    ArrayList:可代表大小可变的数组;

    底层是数组实现,线程不安全,效率高,查询比较高,增删效率低;

    List和Set的特性和区别:

    1)首先list和set都是单列集合;

    2)list里面的元素是有序的可重复的;

    3)set集合里面的元素是无序的不可重复的;

    4)list集合可以根据下标获取对应的元素,而set则只能遍历全部集合才能获取对应的元素;

    相关文章

      网友评论

        本文标题:J2SEI:集合类

        本文链接:https://www.haomeiwen.com/subject/dagiiktx.html