前言

本周是学习java的第六周,把容器大部分内容学完了。

参考教程:

本周学习要点:

1.Map中的HashMap和TreeMap区别不大,效率上使用HashMap,需要用到排序时使用TreeMap。

2.TreeMap是典型的红黑二叉树的实现。

3.TreeMap会按照key递增的方式排序,在使用自己定义的类时需要实现comparable接口并重写CompareTo方法。

4.HashMap和HashTable:前者线程不安全,效率高,允许key或value为null;后者线程安全效率低,不运行key或value为null。

5.HashSet是set的实现类,set内的元素没有顺序且不可重复,使用add方法加入重复的元素则会加入失败,其底层由HashMap实现。

6.TreeSet底层用TreeMap实现,同样的需要实现compareable接口

7.collection是一个接口,collections是一个包装类。

实现comparable接口并重写CompareTo方法

class Emp implements Comparable{

int id;

String name;

double salary;

public Emp(int id, String name, double salary) {

super();

this.id = id;

this.name = name;

this.salary = salary;

}

@Override

public int compareTo(Emp o) {

if(this.salary>o.salary){

return 1;

}else if (this.salary

return -1;

}else {

if(this.id>o.id){

return 1;

}

else if (this.id

return -1;

}else {

return 0;

}

}

}

}

对于这个重写的方法,规定了自定义的比较后的返回值。大于时返回1,小于时返回-1,等于时返回0。在这里我比较了salary,当salary出现相等的情况时则比较id,若id出现相等的情况时则返回0,即表示相等,当然了,还可以继续延展下去,如id相等时在嵌套if,elseif语句来比较name是否相等。

遍历容器的方式

一般的有四种:

1.for循环

2.增强for循环(foreach)

3.for循环+迭代器

4.while循环+迭代器

迭代器遍历容器元素

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

遍历list:

public static void testIteratorList() {

List list = new ArrayList<>();

list.add("a");

list.add("b");

for(Iterator iter=list.iterator();iter.hasNext();){

String temp = iter.next();

System.out.println(temp);

}

}

遍历set:

public static void testIteratorSet() {

Set set = new HashSet<>();

set.add("aa");

set.add("bb");

for(Iterator iter=set.iterator();iter.hasNext();){

String temp = iter.next();

System.out.println(temp);

}

}

遍历map:

public static void testIteratorMap() {

Map map = new HashMap<>();

map.put(1, "aa");

map.put(2, "ss");

//第一种方式

Set> ss = map.entrySet();

for(Iterator> iter=ss.iterator();iter.hasNext();){

Entry temp=iter.next();

System.out.println(temp.getKey()+"--"+temp.getValue());

}

//第二种方式

Set keySet = map.keySet();

for(Iterator iter=keySet.iterator();iter.hasNext();){

Integer key = iter.next();

System.out.println(key+"--"+map.get(key));

}

}

java开发周报_java第六周周报相关推荐

  1. 毕业设计周报(第六周)

    毕业设计周报(第六周)通信工程1801班 陈港 一.本周完成的工作 1. 完成样本收集界面的设计. 2. 完成样本管理界面的部分设计. 3. 完成把图片转换成base64格式,并把样本收集界面的数据p ...

  2. 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结

    达拉草201771010105<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识 1.程序与进程的概念: (1)程序是一段静态的代码,它是应用程序执行的蓝 本. (2)进 ...

  3. 杨玲 201771010133《面向对象程序设计(java)》第十六周学习总结

    <面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识学习部分 1.程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕 ...

  4. java开发指南_Java 12新功能完整指南

    java开发指南 六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要 ...

  5. 码出高效:java开发手册_Java 11手册:Java专家分享他们在Java 11方面的最佳和最差的经验

    码出高效:java开发手册 Java 10标志着Java生态系统新时代的开始,但最新版本证明仍有一些里程碑可言. Java 11是Oracle新的六个月周期中的第一个LTS版本. 您可以在此处下载Ja ...

  6. java 开发工具_Java开发工具和环境,你了解多少?

    Java作为今年来最热门的编程语言之一,越来越多的人选择Java,但对于一些初入门的小白来说,在选择和安装开发工具和环境的时候,会遇见很多的问题. 今天就给大家来分享一些实用的Java开发工具和环境, ...

  7. java开发简介_Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主 ...

  8. java开发人员_Java 8:开发人员怎么看?

    java开发人员 由于Java 8发行倒计时已经开始,因此Java开发人员似乎肯定已经准备好参与其中. 根据Typesafe的一项调查 ,参与其中的开发人员中有65%回答说他们将在24个月的计划中迁移 ...

  9. erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!

    黑马程序员上海中心 学姐微信:CZBKSH 关注 咳咳,今天学姐就来和你们说说Spring对于Java程序员的重要性. 首先,Spring 官网首页是这么介绍自己的--"Spring: th ...

最新文章

  1. 每次没事情的时候都去学校的活动室或者武术室
  2. Confluence 6 针对 'unmigrated-wiki-markup' 宏重新尝试合并
  3. Firefox for iOS现身Github 使用Swift编写
  4. 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数
  5. 滴滴回应未删道歉微博;阿里 P7 员工租自如病亡;苹果无人车出事故 | 极客头条...
  6. asp.net937-图书馆座位管理系统
  7. XcodeGhost:墙、感染、信任和欺骗
  8. Linux内核编译 —— 配置文件
  9. ndwi是什么意思_NDWI是什么意思
  10. 程序猿开启竖屏之路(竖屏的安装和使用)
  11. Li‘s 核磁共振影像数据处理-19-FSL界面可视化操作介绍
  12. 国产示波器采用的ADC芯片
  13. 【数据结构 严蔚敏版】 二叉树 基本操作
  14. golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error)
  15. 微信小程序导航头部吸顶效果
  16. Java第八次实验要求
  17. 医院信息化建设历程(1)概述
  18. 手机浏览器 ajax错误,在IE浏览器中出现Ajax错误“undefined”
  19. linux系统开机一直卡在logo界面,ubuntu开机卡在ok界面,ubuntu一直在加载界面
  20. Django 模型层(models) 复杂查询详解

热门文章

  1. 谁是中华第一学府---大陆及港台十大学府排行
  2. 浅谈JavaScript中的NaN
  3. DB107-ASEMI适配充电器LED适配器桥堆
  4. 全备+增量备份的测试
  5. ubuntu unrar解压rar包和unzip 解压zip包
  6. 麦克风和扬声器不能用,显示音频服务未响应
  7. ## 耳机插入电脑无声音,疑难解答显示“音频服务无响应”的一种解决思路:
  8. 苹果群控 ios手机免越狱一键打开一键同步操作
  9. Spark大数据开发学习:Spark基础入门
  10. mysql 向下兼容_前言本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5...