java.util (Collection接口和Map接口)

1:Collection和Map接口的几个主要继承和实现类

                

 

1.1  Collection接口

  Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。

  如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:
    Iterator it = collection.iterator(); // 获得一个迭代子
    while(it.hasNext()) {
      Object obj = it.next(); // 得到下一个元素
    }

1.1.1 Iterator 接口

  Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。

 2 Map接口

  Map是一个单独的接口,不继承于Collection。Map是一种把键对象和值对象进行关联的容器。一个key->value的对象

特点:key不允许重复。 

        映射与集或列表有明显区别,映射中每个项都是成对的,Map是把键对象和值对象进行关联的容器。映射中存储的每个对象都有一个相关的关键字(Key)对象,关键字决定了对象在映射中的存储位置,检索对象时必须提供相应的关键字,就像在字典中查单词一样。关键字应该是唯一的,也就是说Map中的键对象不允许重复,这是为了保证查询结果的一致性。

  关键字本身并不能决定对象的存储位置,它需要对过一种散列(hashing)技术来处理,产生一个被称作散列码(hash code)的整数值,散列码通常用作一个偏置量,该偏置量是相对于分配给映射的内存区域起始位置的,由此确定关键字/对象对的存储位置。理想情况下,散列处理应该产生给定范围内均匀分布的值,而且每个关键字应得到不同的散列码。

实现类: 

    HashMap 实现一个键到值映射的哈希表,通过键取得值对象,没有顺序,通过get(key)来获取value,允许存储空对象,而且允许键是空(由于键必须是唯一的,当然只能有一个); 

    HashTable 实现一个映象,所有的键必须非空。为了能高效的工作,定义键的类必须实现hashcode()方法和equal()方法。这个类是前面java实现的一个继承,并且通常能在实现映象的其他类中更好的使用。

    当元素的顺序很重要时选用TreeMap,当元素不必以特定的顺序进行存储时,使用HashMap。Hashtable的使用不被推荐,因为HashMap提供了所有类似的功能,并且速度更快。当你需要在多线程环境下使用时,HashMap也可以转换为同步的。

2.1 Map.Entry

  Map是java中的接口,Map.Entry是Map的一个内部接口。

  Map提供了一些常用方法,如keySet()、entrySet()等方法。

  keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

  Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

public class MapTest {public static void main(String[] args) {Map<String,String> map = null;map = new HashMap<String,String>();map.put("name", "小明");map.put("age", "18");map.put("heigh", "175");//		遍历Map的方法1Set<Map.Entry<String,String>>  set1 = map.entrySet();Iterator<Entry<String, String>> iterator = set1.iterator(); while( iterator.hasNext()) {Entry<String, String> entry = iterator.next();Object key = entry.getKey();System.out.println(key);}//		遍历Map的方法2Set<String> set2 = map.keySet();Iterator<String> iterator1 = set2.iterator();while(iterator1.hasNext()) {Object key = iterator1.next();Object value = map.get(key);System.out.println("key=" + key +"    " + "value= " + value);}//		遍历Map中value的值Collection<String> c = map.values();Iterator<String> iterator3 = c.iterator();while(iterator3.hasNext()) {Object value = iterator3.next(); System.out.println(value);}}}

转载于:https://www.cnblogs.com/myseries/p/7508110.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scala 拆分字符串翻转_Scala程序分割字符串

scala 拆分字符串翻转A string is a collection that stores multiple characters, it is an immutable sequence which cannot be changed. 字符串是存储多个字符的集合&#xff0c;它是不可更改的不可更改的序列。 分割字符串 (Splitting a string) In Scala, using the spl…

[转载] python 简单示例说明os.walk和os.path.walk的不同

参考链接&#xff1a; 示例说明Python2.x和Python3.x之间的重要区别 import os,os.path def func(arg,dirname,names): for filespath in names: print os.path.join(dirname,filespath) if __name__"__main__": print "os.walk" index 1 for root,subd…

c#中索引器是什么_C#中的索引器

c#中索引器是什么An Indexer is a special feature of C# to use an object as an array. If you define an indexer in a class then it will behave like a virtual array. Indexer is also known as smart array in C#. It is not a compulsory or essential part of OOPS. …

asp.net MVC5为WebAPI添加命名空间的支持

前言 默认情况下&#xff0c;微软提供的MVC框架模板中&#xff0c;WebAPI路由是不支持Namespace参数的。这导致一些比较大型的项目&#xff0c;无法把WebApi分离到单独的类库中。 本文将提供解决该问题的方案。 微软官方曾经给出过一个关于WebAPI支持Namespace的扩展&#xff0…

[转载] Python3.X 线程中信号量的使用方法示例

参考链接&#xff1a; 示例说明Python2.x和Python3.x之间的重要区别 信号量semaphore 是一个变量&#xff0c;控制着对公共资源或者临界区的访问。信号量维护着一个计数器&#xff0c;指定可同时访问资源或者进入临界区的线程数。下面这篇文章主要给大家介绍了关于Python3.X 线…

从流程的自动化中获得最大价值的10种方式

流程自动化很好&#xff0c;如果它可以节省时间并减少错误。但是如果它不能在业务流程中“很好地契合”&#xff0c;那么会难以得到普及。问问有谁没有对语音助手感到伤脑筋。 所幸的是&#xff0c;某些最佳实践让你可以从流程自动化中获得最大价值&#xff0c;以下就是其中的1…

java中null是常量吗_C_NULL Julia中的常量

java中null是常量吗Julia| C_NULL常数 (Julia | C_NULL Constant) C_NULL is a constant of Ptr{Nothing} type in Julia programming language, it represents the null pointer value, which is used for C Null Pointer while calling external code. C_NULL是Julia编程语言…

[转载] Python京东抢购

参考链接&#xff1a; 从Python获取输入 Python京东抢购 分析其中提交信息接口的参数&#xff0c;可以成功抢购商品&#xff0c;并且可以提交订单。。。。2018年7月17日 提交信息的获取 直接提交信息对post提交分析其中的参数。 经过分析参数大多数在&#xff1a;https…

6.04 从字符串中删除不需要的字符

需求&#xff1a;删除所有的0和元音字母。 select ename,replace(replace(replace(replace(replace(ename,A,),E,),I,),O,),U,) as stripped1,sal,replace(sal,0,) stripped2from emp;转载于:https://www.cnblogs.com/liang545621/p/7518766.html

Scala分号

Scala分号 (Scala semicolons) A semicolon or semi-colon (;) is a punctuation mark in programming, it is used to separate multiple lines of code. It is common in major programming languages like C, C, Java, Pascal. In modern programming languages like Python…

[转载] python通过adb获取android手机耗电量

参考链接&#xff1a; 从Python中控制台获取输入 把开发者模式打开&#xff0c;激活 adb 调试&#xff0c;然后可以使用以下python代码获取安卓手机的耗电量 # -*- coding: utf-8 -*- import re import os def getSelectDevice(): pip os.popen(adb devices) result pip.…

ES6之主要知识点(二) 变量的解构赋值。默认值

引自http://es6.ruanyifeng.com/#docs/destructuring 数组解构赋值默认值对象解构赋值用途1.数组的解构赋值 let [a, b, c] [1, 2, 3]; let [foo, [[bar], baz]] [1, [[2], 3]]; foo // 1 bar // 2 baz // 3let [ , , third] ["foo", "bar", "baz&…

python无符号转有符号_Python | 散布符号

python无符号转有符号There are multiple types of Scatter Symbols available in the matplotlib package and can be accessed through the command marker. In this article, we will show some examples of different marker types and also present a list containing all…

[转载] 基于LSTM的股票预测模型_python实现_超详细

参考链接&#xff1a; 从Python获取输入 文章目录 一、背景二、主要技术介绍1、RNN模型2、LSTM模型3、控制门工作原理四、代码实现五、案例分析六、参数设置七、结论完整程序下载 一、背景 近年来&#xff0c;股票预测还处于一个很热门的阶段&#xff0c;因为股票市场的波动…

shell -eom_EOM的完整形式是什么?

shell -eomEOM&#xff1a;消息结尾 (EOM: End Of Message) EOM is an abbreviation of "End Of Message". EOM是“消息结尾”的缩写 。 It is an expression, which is commonly used in the Gmail platform. It is also written as Eom or eom. It is written at …

在eclipse中启动Tomcat访问localhost:8080失败项目添加进Tomcat在webapp中找不到

软件环境&#xff1a;Eclipse oxygen&#xff0c; Tomcat8.5 #在eclipse中启动Tomcat访问localhost:8080失败 在eclipse中配置tomcat后&#xff0c;打开tomcat后访问localhost:8080后无法出现登陆成功的界面,即无法出现下面的界面 在eclipse中的servers状态栏中双击tomcat&…

[转载] 【基础教程】Python input()函数:获取用户输入的字符串

参考链接&#xff1a; 从Python中控制台获取输入 input() 是 Python 的内置函数&#xff0c;用于从控制台读取用户输入的内容。input() 函数总是以字符串的形式来处理用户输入的内容&#xff0c;所以用户输入的内容可以包含任何字符。 input() 函数的用法为&#xff1a; str…

程序员简历工作模式_简历的完整形式是什么?

程序员简历工作模式简历&#xff1a;简历 (CV: Curriculum Vitae) The CV is an abbreviation of Curriculum Vitae. It is a written outline summary of a persons educational training and qualifications and his other experiences. It is an absolute profile of a cand…

[转载] Python新手写出漂亮的爬虫代码1——从html获取信息

参考链接&#xff1a; Python中从用户获取多个输入 Python新手写出漂亮的爬虫代码1 初到大数据学习圈子的同学可能对爬虫都有所耳闻&#xff0c;会觉得是一个高大上的东西&#xff0c;仿佛九阳神功和乾坤大挪移一样&#xff0c;和别人说“老子会爬虫”&#xff0c;就感觉特别…

在Scala中设置&()方法

Scala中的Set&#xff06;()方法 (The Set &() method in Scala) The &() method in the Set is used to create a new set in Scala. This new set created contains all elements from the other two sets that are common for both of the given sets i.e. new set …