java集合框架中包含哪些类(一文搞懂java之集合框架)java教程 / Java集合框架详解...

wufei123 发布于 2024-02-21 阅读(72)

集合结构集合类结构关系图单列集合Collection包含了List和SetList里面主要包括ArrayList和LinkedListSet里面主要含有HashSet和TreeSet双列集合MapMap主要包含HashMap和TreeMap

一:Java集合之List及set1:List容器List的特性:1.可以存储任何类型的元素,元素可以重复2.容器是可变长度的3.元素存储有序,可以使用索引来访问List的实现类:ArrayList,LinkedList

List容器-- ArrayListArrayList:List l=new ArrayList();数组列表类,没有线程同步常用方法:add(Object obj);//插入元素,在末尾add(int i, Object obj);//在索引i处添加元素。

remove(int i);//移除i索引处的元素get(int i);//获取索引i处的方法size();列表中的元素数toArray();将列表中的元素转为数组List容器-- LinkedList

LinkedList:LinkedList l=new LinkedList();链表类,没有线程同步常用方法:addFirst(Object o);//将指定元素插入此列表的开头addLast(Object o);//将指定元素插入此列表的末尾

getFirst();//返回此列表的第一个元素getLast();//返回此列表的最后一个元素removeFirst();//删除列表的第一个元素removeLast();//删除列表的最后一个元素2:泛型

所谓泛型是指将类型参数化以达到代码复用,提高软件开发工作效率的一种数据类型我们在用List存储和取值的时候,其实都做了装箱,拆箱的操作显然大量重复的装拆箱动作会降低效率eg:List l=new ArrayList () ;。

java的泛型规定了集合中存储的数据类型,避免了不必要的装拆箱动作并且泛型可以起到检测存储类型的作用3:Set容器Set的特性:1.可以存放任何类型的元素2.不可存放重复值3.无序排列,不可通过索引来访问。

Set的实现类:HashSetTreeSetSet容器-- HashSet只保证唯一性,不保证顺序如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果

底层结构是哈希表结构--存储自定义对象--判断和删除的依据底层结构是哈希表结构根据不同的hash值来去重为了判断一致性怎么判断元素是否一致首先判断hashcode是否一致,如果hash值一样,才会判断两个对象是否一致,就是判断equals的返回值是否一样

自定义对象的时候hashSet怎么保证元素的唯一性首先判断地址是否一致再判断equals返回的结果是否一样HashSet注重的是元素的唯一性 当首要条件相同时,比较次要条件HashSet:Set l=new HashSet();

散列集结构,没有线程同步常用方法:add(Object o)//添加元素clear()//移除所有元素size()//返回此set中元素的数量remove(Object o)//移除某个元素containts(Object o)//如果此 set 包含指定元素,则返回 true

Set容器-- TreeSet不仅保证唯一性,而且保证顺序底层结构是二叉树hashSet不注重顺序,只注重唯一性treeSet不仅注重唯一性,还要注重顺--自然排序--存储自定义对象 Comparable

1:第一种比较方式 Comparable当存储的是自定义对象时,必须实现Comparable接口,然后实现compareTo方法让对象元素具有比较性当首要比较条件一致的时候,比较次要条件 2:第二种比较方式 。

Comparator//创建一个类实现Comparator接口,实现compare方法,//使用TreeSet的构造方法将比较性传入//字符串默认是字典顺序,我现在要求这个按照字符串的长短比较说明comparator的优先级大于Comparable

4.迭代器Iterator模式是用于遍历集合类的标准访问方法它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。

迭代器的三个方法:hasNext();//判断是否有元素可迭代 next();//返回迭代的下一个元素 remove()//移除当前元素 //用Set构建迭代器 Iterator i=set.iterator(); while(i.hasNext()){ Object o=i.next();System.out.println(o); }

二:Java集合之Map1:Map概述---双列集合key ValueMap是一个双列集合,key--键值 键值唯一,而且指向唯一 一个键映射一个值跟Collection并列关系Map和Set的关系 Set其实就是没有值的Map

Map key valueSet Collection Map的关系

2:Map的子类对象特点 |--Hashtable---底层结构是哈希表结构,不可以使用null来充当键和值,他是同步的,效率低,出现在Jdk1.0 |--HashMap ---底层结构是哈希表结构,可以使用null来充当键和值,它是不同步的,效率高, 出现在jdk1.2

|--TreeMap ---底层是二叉树结构,然后键值唯一且有序红黑二叉树根节点是黑色黑色的子节点必然是红色每一个分支(从根节点到叶子节点) 含有的黑数量一致3:Map的共性方法增 put(K key, V value) 添加方法 putAll(Map m) 删 clear() --清除map remove(Object key) 改--判断 containsKey(Object key) ---判断map是否包含某键 containsValue(Object value) ------判断map是否包含某值 isEmpty() ----判断map是否为空 size() ---判断map的大小 查 get(Object key) ---获取某键对应的值 Collection values() ----返回值的集合 遍历方法 Set entrySet() Set keySet() Set Set---首先这是一个Set集合 泛型指定为Map.Entry

4: Map遍历方式1---keySet

5:Map遍历方式2---EnteySet

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻13180