java集合体系结构图,Java集合架构

  java集合体系结构图,Java集合架构

  00-1010 1.什么是集合框架?2.采集接口1。通过generics 2指定相应集合中的对象类型。常用收集方法的使用。地图界面的常用方法4。特定实现类

  00-1010在java中,有一套现成的数据结构,如顺序表、链表、队列、栈、优先级队列、哈希表等。封装成相应的接口/类,供程序员直接使用。它只能通过创建相关对象来使用,而不能实现其内部结构。

  集合是将多个元素放在一个单元中,用于添加、删除、检查、存储和管理这些元素。比如一副扑克牌(一套卡片),一个通讯录(一套姓名和电话的映射关系)等等。

  下图很重要!需要牢记它常用的接口和类!

  因为map接口没有实现Iterable接口,那么如何实现它来遍历其中的元素呢?

  MapInteger,String map=new HashMap();map.put(1, jack );map.put(2, Tom );SetMap。EntryInteger,String entries=map . entry set();//使用迭代器进行遍历,出于同样的原因增强迭代器map.entryinteger,string iterator=entries . iterator();while (iterator.hasNext()) { Map。EntryInteger,String entry=iterator . next();system . out . println(entry . getkey() entry . getvalue());}以Hashmap为例,可以调用它的entrySet()方法将Map中的每个键值对封装成一个Map。EntryInteger,String对象。因为是通过Set接口接收的,所以可以用迭代器或者for-each()来遍历,每个entry对象都有getKey()和getValue()方法分别获取Key值和值Value值。

  基本关系(简化版)

  00-1010一般使用实现集合接口的接口或类来接受实现特定类的对象。从上图可以看出,集合接口是一系列接口和类的父接口,它的内部实现方法很少,所以不能调用子类的一些常用方法。

  00-1010注意:这里传入的类型只能是引用类型。如果是基本数据类型,应该由它的包装类指定。

  collection string collection 1=new ArrayList();collection1.add(哈哈);collection 1 . add( world );collection integer collection 2=new ArrayList();collection 2 . add(1);collection 2 . add(2);//collection 2 . add( hh );//这里会报错,不符合传入的指定类型整数

  00-1010方法动作void clear()删除集合中的所有元素boolean isEmpty()确定集合是否没有元素,俗称空集boolean remove(Object e)。如果元素E出现在集合中,删除其中一个布尔add(E e)并将元素E放入集合中。int size()返回集合中元素的数量。Object[] toArray()返回一个包含集合中所有元素的数组。注意:在最后一个Object[] toArray()方法中,返回Object[]类型的数组。底层的做法是将集合中的元素逐个取出,变成Object对象,存储在要返回的数组中,最后返回一个Object[]类型的数组。如果直接

  将其转换为 String[] 类型的数组,会抛出类型转换异常。

  

 

  因为这里不能保证数组中的每个元素都转成了String,而只是将其整体强转为了String[] 类型的数组,所以如果非要转,需要先遍历返回的结果,将其一个一个转为String类型,最后赋给一个String[] 类型的数组。java里不建议整体对数组类型进行转换。

  

Object[] objects = collection1.toArray(); String[] strings = new String[objects.length]; for (int i = 0; i < objects.length; i++) { strings[i] = (String)objects[i];// 一个一个转,但是没啥必要 }

 

  

3、Map 接口

通过< k, v >键值对的形式来存储数据,此处的 key 值唯一,且每个 key 值都可以对应其相应的 value 值。不同的 key 值可以对应相同的 value 。HashMap: 在存放元素时,根据其key值,调用内部的hashCode函数,找到元素该放入的位置,所以哈希表中元素不是按照存入的顺序存放的。

 

  

 

  

Map常见方法使用

方法作用V get(Object k)根据指定k查找对应vV getOrDefault(Object k, V defaultValue)根据指定的 k 查找对应的 v,没有找到则返回默认值V put(K key, V value)将指定的 k-v 放入 Mapboolean containsKey(Object key)判断是否包含 keyboolean containsValue(Object value)判断是否包含 valueSet<Map.Entry<K, V>> entrySet()将所有键值对返回boolean isEmpty()判断是否为空int size()返回键值对的数量

HashMap<Integer, String> map = new HashMap<>(); // put() map.put(1,"张飞");// 这里的 key 值唯一 map.put(1,"宋江");// 如果二次插入的 key 值之前有,则替换其 value值 map.put(2,"Jack"); System.out.println(map); // get() String s1 = map.get(1);// 返回 宋江 String s3 = map.getOrDefault(3,"三团");// 未找到,返回 三团 // entrySet() // 该方法返回一个 Set<Map.Entry<Integer, String>> 对象 Set<Map.Entry<Integer, String>> entries = map.entrySet(); for (Map.Entry<Integer, String> entry : entries) { // 通过 entry.getKey() 和 entry.getValue() 获取每个entry对应的 k, v值 System.out.println(entry.getKey() + " " + entry.getValue()); }

 

  

 

  

4、具体的实现类

 

  以上就是集合的入门知识啦~

  到此这篇关于Java 超详细图解集合框架的数据结构的文章就介绍到这了,更多相关Java 集合框架 内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: