java map 队列_Java:queue队列,map集合

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构

Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口

示例代码:

1. import java.util.LinkedList;

2. import java.util.Queue;

3.

4. publicclassQueueDemo{

5. publicstaticvoid main(String[] args){

6. // add()和remove()方法在失败的时候会抛出异常(不推荐)

7. Queue queue =newLinkedList();

8. // 添加元素

9. queue.offer("同学A");

10. queue.offer("同学B");

11. queue.offer("同学C");

12. queue.offer("同学D");

13. queue.offer("同学E");

14. // 遍历队列

15. System.out.println("----遍历队列----");

16. for(String q : queue){

17. System.out.print(q +"\t");

18. }

19. System.out.println();

20.

21. // 返回第一个元素,并在队列中删除

22. System.out.println("------poll------");

23. System.out.println("poll="+ queue.poll());

24. System.out.println(queue);

25. // 返回第一个元素

26. System.out.println("------element------");

27. System.out.println("element="+ queue.element());

28. System.out.println(queue);

29. // 返回第一个元素

30. System.out.println("------peek------");

31. System.out.println("peek="+ queue.peek());

32. System.out.println(queue);

33. }

34.}

2、Map集合

Map接口中键和值一一映射. 可以通过键来获取值。

给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。

当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.

当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。

当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。

当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。

一、Map接口示例代码

示例代码:

1. import java.util.HashMap;

2. import java.util.Iterator;

3. import java.util.Map;

4. import java.util.Set;

5.

6. /**

7. * Map接口 key-value 根据一个对象查找对象. HashMap、HashTable、TreeMap是它的实现类,

8. *

9. * @author sxj

10. *

11. */

12.publicclassHashMapAndHashTable{

13. publicstaticvoid main(String[] args){

14. // 如果是基本数据类型,声明的map的时候使用包装类

15. Map map =newHashMap<>();

16.

17. // 添加数据 put当key不存在时,添加key-value

18. map.put(1,"str1");

19. map.put(2,"str2");

20. map.put(3,"str3");

21. map.put(4,"str4");

22. map.put(5,"str5");

23. // put 当key存在时,修改key对应的value

24. map.put(5,"111111");

25.

26. map.put(6,null);

27. map.put(7,null);

28.

29. // 移除 remove(key)

30. map.remove(7);

31.

32. // 判断是否存在key

33. System.out.println("是否存在key:5===》"+ map.containsKey(5));

34. // 判断是否存在value

35. System.out.println("是否存在Value:str4====>"+ map.containsValue("str4"));

36.

37. // 清空map

38. // map.clear();

39.

40. System.out.println("map是否为空:"+ map.isEmpty());

41.

42. // 输出

43. System.out.println(map);

44. // 遍历

45. Set keysSet = map.keySet();

46. Iterator iterator = keysSet.iterator();

47. while(iterator.hasNext()){

48. Integer intKey = iterator.next();

49. System.out.println("key:"+ intKey +"---->Value:"

50. + map.get(intKey));

51. }

52. System.out.println("--------------------");

53. for(Iterator iterator2 = keysSet.iterator(); iterator2.hasNext();){

54. int intKey = iterator2.next();

55. System.out.println("key:"+ intKey +"---->Value:"

56. + map.get(intKey));

57. }

58. System.out.println("--------------------");

59. for(int intKey : keysSet){

60. System.out.println("key:"+ intKey +"---->Value:"

61. + map.get(intKey));

62. }

63. }

64.}

二、TreeMap类

与 TreeSet类似的是,TreeMap中也提供了一系列根据key顺序访问key-value对的方法:

示例代码:

1. import java.util.Map;

2. import java.util.TreeMap;

3.

4. publicclassTreeMapDemo{

5. publicstaticvoid main(String[] args){

6.

7. // 如果是基本数据类型,声明的map的时候使用包装类

8. TreeMap map =newTreeMap<>();

9.

10. // 添加数据 put当key不存在时,添加key-value

11. map.put(1,"str1");

12. map.put(2,"str2");

13. map.put(3,"str3");

14. map.put(4,"str4");

15. map.put(5,"str5");

16. // put 当key存在时,修改key对应的value

17. map.put(5,"111111");

18.

19. map.put(6,null);

20. map.put(7,null);

21.

22. System.out.println(map);

23. System.out.println("--------------------------");

24. //firstEntry() firstKey() lastEntry() lastKey()

25. System.out.println("firstEntry()--->"+map.firstEntry());

26. System.out.println("firstKey()--->"+map.firstKey());

27. System.out.println("lastEntry()--->"+map.lastEntry());

28. System.out.println("lastKey()--->"+map.lastKey());

29.

30. System.out.println("--------------------------");

31. //higherEntry(K key) higherKey(K key) lowerEntry(K key) lowerKey(K key)

32. System.out.println("higherKey(4)--->"+map.higherKey(4));

33. System.out.println("higherEntry(4)--->"+map.higherEntry(4));

34. System.out.println("lowerKey(4)--->"+map.lowerKey(4));

35. System.out.println("lowerEntry(4)--->"+map.lowerEntry(4));

36.

37. System.out.println("--------------------------");

38. // headMap(K toKey) tailMap(K fromKey) subMap(K fromKey, K toKey)

39. Map mapHeadMap=map.headMap(4);

40. Map mapTailMap=map.tailMap(4);

41. Map mapSubMap=map.subMap(2,5);

42.

43. System.out.println("headMap(4)--->"+mapHeadMap);

44. System.out.println("tailMap(4)--->"+mapTailMap);

45. System.out.println("subMap(2,5)--->"+mapSubMap);

46.

47. }

48.}

由于TreeMap是有序的,也支持Comparable和Comparator两种排序方式。TreeMap主要是Key值排序

TreeMapComparable排序示例代码:

1. import java.util.Map;

2. import java.util.Set;

3. import java.util.TreeMap;

4.

5. publicclassTreeMapDemo1{

6. publicstaticvoid main(String[] args){

7. Map map=newTreeMap();

8. map.put(newPerson1("1",51),"1");

9. map.put(newPerson1("2",15),"2");

10. map.put(newPerson1("3",32),"3");

11. map.put(newPerson1("4",24),"4");

12. map.put(newPerson1("5",6),"5");

13.

14. Set kSet=map.keySet();

15. for(Person1 person1 : kSet){

16. System.out.println("name:"+person1.getName()+";age:"+person1.getAge()+";num:"+map.get(person1));

17. }

18. }

19.}

20.

21.classPerson1implementsComparable{

22. privateString name;

23. privateint age;

24.

25. publicPerson1(String name,int age){

26. this.name=name;

27. this.age=age;

28. }

29.

30. publicString getName(){

31. return name;

32. }

33.

34. publicvoid setName(String name){

35. this.name = name;

36. }

37.

38. publicint getAge(){

39. return age;

40. }

41.

42. publicvoid setAge(int age){

43. this.age = age;

44. }

45.

46. @Override

47. publicint compareTo(Person1 o){

48. // 从小到大 :this-o

49. // 从大到小:o-this

50. // return this.age - o.age;

51. if(this.age != o.age){

52. returnthis.age - o.age;

53. }else{

54. returnthis.name.compareTo(o.name);

55. }

56. }

57.}

TreeMapComparator排序示例代码:

1. import java.util.Comparator;

2. import java.util.Map;

3. import java.util.Set;

4. import java.util.TreeMap;

5.

6. publicclassTreeMapDemo2{

7. publicstaticvoid main(String[] args){

8. Map map =newTreeMap(

9. newComparator(){

10. @Override

11. publicint compare(Person2 o1,Person2 o2){

12. /**

13. * 从小到大:o1-o2 从大到小:o2-o1

14. */

15. if(o1.getAge()!= o2.getAge()){

16. return o1.getAge()- o2.getAge();

17. }else{

18. return o2.getName().compareTo(o1.getName());

19. }

20. }

21. });

22.

23. map.put(newPerson2("1",51),"1");

24. map.put(newPerson2("2",15),"2");

25. map.put(newPerson2("3",32),"3");

26. map.put(newPerson2("4",24),"4");

27. map.put(newPerson2("5",6),"5");

28.

29. Set kSet = map.keySet();

30. for(Person2Person2: kSet){

31. System.out.println("name:"+Person2.getName()+";age:"

32. +Person2.getAge()+";num:"+ map.get(Person2));

33. }

34. }

35.}

36.

37.classPerson2{

38. privateString name;

39. privateint age;

40.

41. publicPerson2(String name,int age){

42. this.name = name;

43. this.age = age;

44. }

45.

46. publicString getName(){

47. return name;

48. }

49.

50. publicvoid setName(String name){

51. this.name = name;

52. }

53.

54. publicint getAge(){

55. return age;

56. }

57.

58. publicvoid setAge(int age){

59. this.age = age;

60. }

61.}

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

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

相关文章

java溢出怎么处理_java数据溢出怎么处理?

publicstaticvoidmain(String[]args){//TODO自动生成的方法存根ScannerscnewScanner(System.in);Stringaasc.nextLine();sc.close();floatdn0,xn0,kn0,sn0,qn0;for(inti0;i<a...public static void main(String[] args) {// TODO 自动生成的方法存根Scanner scnew Scanner(S…

java基础 最重要的部分_Java基础(1)最基础的部分

本文章均为自己在自学期间整理的笔记&#xff0c;2020年四月份开始学习Java&#xff0c;如有不足&#xff0c;请补充。希望对各位小伙伴都能有帮助。1.Java中public class和class区别&#xff1a;1)在一个Java文件中可以定义多个class 2)public的class不是必须的 3)public修…

logstash mysql增量_Logstash jdbc 按时间增量更新的一些总结

不同数据库的支持mysql数据类型显示样例是否支持timestampstatementtracking_columntracking_column_typeSQL示例date2020-10-20Nselect *, datediff(date, 1970-01-01) as days from tbl_time where datediff(date, 1970-01-01) > :sql_last_valuedaysnumericselect *, dat…

用java编写奖金税率_企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%_java企业利润提成计算代码...

今天上java课程的时候老师给布置了一个作业&#xff0c;让让java计算一下企业该发放的奖金总额&#xff0c;接下来吾爱编程就为大家介绍一下java实现企业发放的奖金根据利润提成的代码&#xff0c;有需要的小伙伴可以参考一下&#xff1a;1、题目如下&#xff1a;企业发放的奖金…

java 多线程工具_多线程测试工具groboutils的使用

public class FaultServiceTest extends TestCase {/*** param args* throws FaultException* throws ExpParamNotFoundException* throws ParseException*/private IFaultService faultService;private static final int NUM_THREAD 100; // 测试线程总数public FaultService…

java提取多行嵌套div/div内容的正则表达式_提取某一段div标签之间内容的正则表达式怎么写...

满意答案public static void main(String[] args) {String source"\">是大家是否gt;士大夫士大夫";StringBuilder resultnew StringBuilder();System.out.println("开始匹配文字内容");String patternStrs"()(.?)()";Pattern patternPa…

阶乘取模算法java_np问题(大数阶乘取模)

np问题题目描述&#xff1a;LYK 喜欢研究一些比较困难的问题&#xff0c;比如 np 问题。这次它又遇到一个棘手的 np 问题。问题是这个样子的&#xff1a;有两个数 n 和 p&#xff0c;求 n 的阶乘对 p 取模后的结果。LYK 觉得所有 np 问题都是没有多项式复杂度的算法的&#xff…

Java读取hdfs目录下所有文件_Java API 读取HDFS目录下的所有文件

/*** 获取1号店生鲜食品的分类id字符串* param filePath* return*/public String getYHDSXCategoryIdStr(String filePath) {final String DELIMITER new String(new byte[]{1});final String INNER_DELIMITER ",";// 遍历目录下的所有文件BufferedReader br null…

python django 表单_Django ModelForm与Form

django表单系统中&#xff0c;所有的表单类都作为django.forms.Form的子类创建&#xff0c;包括ModelForm关于django的表单系统&#xff0c;主要分两种基于django.forms.Form基于django.forms.ModelForm表单API表单有两种状态&#xff0c;绑定&#xff0c;未绑定 Form.is_bound…

java获取2017年第39周_对输入计算机的数据进行审核,可采用()进行审核。A.抽查B.屏幕审核C.凭证清单和屏幕审核D.凭证清单...

参考答案如下对输的数单和薄基底膜肾病主要的遗传方式为A.常染色体显性遗传B.常染色体隐性遗传C.性染色体显性遗传D.性染色儿童的情感发展遵循若干的阶段,比较后出现的是()。A、入计惊讶B、好奇C、恐惧D、哀和乐算机审核智商和情商完全可以分开。()人格不包括以下哪个方面&…

php解析bt,PHP基于闭包思想实现的BT(torrent)文件解析工具实例详解

本文实例讲述了PHP基于闭包思想实现的torrent文件解析工具。分享给大家供大家参考&#xff0c;具体如下&#xff1a;PHP对静态词法域的支持有点奇怪&#xff0c;内部匿名函数必须在参数列表后面加上use关键字&#xff0c;显式的说明想要使用哪些外层函数的局部变量。function c…

php excel header,【IT专家】PHP生成excel,方法一-header生成

本文由我司收集整编&#xff0c;推荐下载&#xff0c;如有疑问&#xff0c;请与我司联系PHP生成excel&#xff0c;方法一:header生成2018/02/09 444 public function export_order() { //搜索条件$where ‘where 11 ‘; $consignee I(‘consignee’); if($consignee){ $where…

discuz php源码,Discuz7 php源码,该如何解决

PHP code$_value) { $_key{0} ! _ && $$_key daddslashes($_value);}}//过滤$_FILES,也就是添加引用if (!MAGIC_QUOTES_GPC && $_FILES) {$_FILES daddslashes($_FILES);}//初始化一些变量$charset $dbs $dbcharset $forumfounders $metakeywords $extr…

php显示html表单内容,HTML表单是什么?HTML表单内容的详细介绍(附代码)

HTML 表单是用于搜集不同类型的用户输入的&#xff0c;表单是一个包含表单元素的区域&#xff1b;表单元素是允许用户在表单中(比如&#xff1a;文本域、下拉列表、单选框、复选框等等)输入信息的元素&#xff1b;表单使用表单标签()定义。一、介绍1.表单概念&#xff1a;表单最…

matlab分数约分,分母

3.10c语言自学2021-03-10 19:51:18https://s4.51cto.com/images/blog/202103/10/489602174c3d2e1deb2f94bc7944366c.png?x-oss-processimage/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk)term-termxx/(n(…

php中metadata,模型元数据(Models Metadata)

To speed up development Phalcon\Mvc\Model helps you to query fields and constraints from tables related to models. To achieve this, Phalcon\Mvc\Model\MetaData is available to manage and cache table metadata.Phalcon\Mvc\Model 能帮助你查询字段从表关联到模型和…

matlab函数冒号代表的意思,MATLAB中冒号运算符的含义

实际上a&#xff1a;b生成一个向量.您可以仅将其用作索引,因为(…)也接受列表,例如octave-3.0.3:10> a [1,4,7]a 1 4 7octave-3.0.3:11> b [1,4,9,16,25,36,49]b 1 4 9 16 25 36 49octave-3.0.3:12> b(a) # gets [b(1), b(4), b(7)]ans 1 16 49现在,a&#xff1a;b&…

ubuntu安装matlab空间不足,Ubuntu安装Matlab方法及命令

操作系统&#xff1a;Ubuntu 10.04matlab版本&#xff1a;Mathworks.Matlab.R2010a.UNIX注意&#xff1a;软件安装后会占用大量硬盘空间&#xff0c;约4G.软件Mathworks.Matlab.R2010a.UNIX一、软件安装1.右键 Mathworks.Matlab.R2010a.UNIX.iso &#xff0c;解压缩到此处。2.在…

java怎么让1的数据2可以拥有,【如何让代码变“高级”(二)】-这样操作值得一波666(Java Stream)(这么有趣)...

“致"高级"工程师(BUG工程师)一颗折腾的心原创不易&#xff0c;点个赞&#x1f497;&#xff0c;支持支持开发中的代码在开发中的代码是不是很常见这样的代码&#xff1a;这样的?for循环取元素取值List szUserList new ArrayList<>();for (User user : userL…

网易云信短信接口java,调用网易云短信验证码接口Demo

最近在开发新的项目&#xff0c;因为需要使用验证码验证这个功能。我选择的是 网易云 的验证码接口。免费使用20条。并且在正式使用的过程中&#xff0c;对比了很多家以后&#xff0c;感觉还是他家的便宜。因为随着你购买的短信包数量的增加&#xff0c;价钱会相应的降低&#…