java开发周报_java第六周周报
前言
本周是学习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第六周周报相关推荐
- 毕业设计周报(第六周)
毕业设计周报(第六周)通信工程1801班 陈港 一.本周完成的工作 1. 完成样本收集界面的设计. 2. 完成样本管理界面的部分设计. 3. 完成把图片转换成base64格式,并把样本收集界面的数据p ...
- 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结
达拉草201771010105<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识 1.程序与进程的概念: (1)程序是一段静态的代码,它是应用程序执行的蓝 本. (2)进 ...
- 杨玲 201771010133《面向对象程序设计(java)》第十六周学习总结
<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识学习部分 1.程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕 ...
- java开发指南_Java 12新功能完整指南
java开发指南 六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要 ...
- 码出高效:java开发手册_Java 11手册:Java专家分享他们在Java 11方面的最佳和最差的经验
码出高效:java开发手册 Java 10标志着Java生态系统新时代的开始,但最新版本证明仍有一些里程碑可言. Java 11是Oracle新的六个月周期中的第一个LTS版本. 您可以在此处下载Ja ...
- java 开发工具_Java开发工具和环境,你了解多少?
Java作为今年来最热门的编程语言之一,越来越多的人选择Java,但对于一些初入门的小白来说,在选择和安装开发工具和环境的时候,会遇见很多的问题. 今天就给大家来分享一些实用的Java开发工具和环境, ...
- java开发简介_Java Web开发介绍
转自:http://www.cnblogs.com/pythontesting/p/4963021.html 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主 ...
- java开发人员_Java 8:开发人员怎么看?
java开发人员 由于Java 8发行倒计时已经开始,因此Java开发人员似乎肯定已经准备好参与其中. 根据Typesafe的一项调查 ,参与其中的开发人员中有65%回答说他们将在24个月的计划中迁移 ...
- erp开发和java开发区别_Java程序员求职必学:Spring boot学习指南!
黑马程序员上海中心 学姐微信:CZBKSH 关注 咳咳,今天学姐就来和你们说说Spring对于Java程序员的重要性. 首先,Spring 官网首页是这么介绍自己的--"Spring: th ...
最新文章
- 每次没事情的时候都去学校的活动室或者武术室
- Confluence 6 针对 'unmigrated-wiki-markup' 宏重新尝试合并
- Firefox for iOS现身Github 使用Swift编写
- 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数
- 滴滴回应未删道歉微博;阿里 P7 员工租自如病亡;苹果无人车出事故 | 极客头条...
- asp.net937-图书馆座位管理系统
- XcodeGhost:墙、感染、信任和欺骗
- Linux内核编译 —— 配置文件
- ndwi是什么意思_NDWI是什么意思
- 程序猿开启竖屏之路(竖屏的安装和使用)
- Li‘s 核磁共振影像数据处理-19-FSL界面可视化操作介绍
- 国产示波器采用的ADC芯片
- 【数据结构 严蔚敏版】 二叉树 基本操作
- golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error)
- 微信小程序导航头部吸顶效果
- Java第八次实验要求
- 医院信息化建设历程(1)概述
- 手机浏览器 ajax错误,在IE浏览器中出现Ajax错误“undefined”
- linux系统开机一直卡在logo界面,ubuntu开机卡在ok界面,ubuntu一直在加载界面
- Django 模型层(models) 复杂查询详解
热门文章
- 谁是中华第一学府---大陆及港台十大学府排行
- 浅谈JavaScript中的NaN
- DB107-ASEMI适配充电器LED适配器桥堆
- 全备+增量备份的测试
- ubuntu unrar解压rar包和unzip 解压zip包
- 麦克风和扬声器不能用,显示音频服务未响应
- ## 耳机插入电脑无声音,疑难解答显示“音频服务无响应”的一种解决思路:
- 苹果群控 ios手机免越狱一键打开一键同步操作
- Spark大数据开发学习:Spark基础入门
- mysql 向下兼容_前言本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5...