java判断集合对象中是否存在某值方法

if(list.stream()
.filter(item->item.getU**()
.equals("****"))
.findAny()
.isPresent())
{
//存在则代码块执行业务逻辑代码
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java范例开发大全(全书源程序),目录如下: 第1篇  Java编程基础 第1章  Java开发环境的搭建(教学视频:9分钟) 2 1.1  理解Java 2 1.2  搭建Java所需环境 3 1.2.1  下载JDK 3 1.2.2  安装JDK 4 1.2.3  配置环境 5 1.2.4  测试JDK配置是否成功 7 实例1  开发第一个Java程序 7 第2章  Java基础型与运算符 实例2  自动提升 9 实例3  自动转换 10 实例4  常用基础型之强制转换 11 2.2  运算符 12 实例5  算术运算符 12 实例6  关系运算符 13 实例7  逻辑运算符 14 实例8  位运算符 15 实例9  移位运算符 16 实例10  转型运算符 17 2.3  其他形式 18 实例11  常量与变量 18 实例12  各种进制的转换 19 实例13  Java的进制与移位运算符 22 第3章  条件控制语句(教学视频:75分钟) 26 3.1  if控制语句 26 实例14  判断输入的年份是否为闰年 26 实例15  抽奖活动 27 3.2  for语句 28 实例16  小九九乘法表 28 实例17  如何列出素数 29 实例18  Java的递归 31 实例19  男生女生各多少人 32 实例20  求水仙花数 34 实例21  求任意一个正数的阶乘 35 实例22  求n的n次方 35 实例23  利用for循环输出几何图形 36 实例24  杨辉三角 38 3.3  while语句 39 实例25  求1到100之间的和 39 实例26  存上100元需要多少天 40 实例27  输出100之间的所有偶数 41 实例28  如何判断回文数字 42 3.4  do…while语句 43 实例29  输出100之间的所有奇数 44 实例30  求最大的随机数 44 3.5  switch语句 45 实例31  判断字母分 46 实例32  优良及差 47 实例33  打印任意一年日历 48 实例34  一年四季的划分 51 第2篇  Java数据处理 第4章  异常处理(教学视频:62分钟) 54 4.1  编译时异常 54 实例35  除0发生的算术异常(ArithmeticException) 54 实例36  数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37  数组元素型不匹配异常(ArrayStoreException) 56 实例38  强制型转换异常(ClassCastException) 56 实例39  索引越界异常(IndexOutOfBoundsException) 57 实例40  空指针异常(NullPointerException) 58 实例41  数字格式转换异常(NumberFornatException) 59 实例42  字符串索引越界异常(StringIndexOutBounds) 60 实例43  操作错误(UnsupportedOperationException) 60 4.2  运行时异常 61 实例44  找不到指定时发生的异常(ClassNotFoundException) 62 实例45  请求的方法存在(NoSuchMethodException) 63 4.3  try…catch捕获异常 65 实例46  try…catch捕获异常的实例 66 实例47  try…catch…finally捕获异常的实例 67 实例48  try…catch嵌套捕获异常的实例 68 4.4  throws声明异常 69 实例49  throws声明异常实例一 69 实例50  throws声明异常实例二 70 4.5  throw抛出异常 72 实例51  throw抛出异常实例一 72 实例52  throw抛出异常实例二 73 4.6  自定义异常 74 实例53  自定义异常实例一 74 实例54  自定义异常实例二 75 第5章  数组(教学视频:98分钟) 78 5.1  一维数组 78 实例55  一维数组的创建与使用 78 实例56  按相反的顺序输出 79 实例57  奇偶分组 80 实例58  找宝 81 实例59  寻找最小数 82 实例60  我的位置在哪里 83 实例61  复制数组 85 实例62  插入新元素 86 实例63  数组的合并 87 实例64  去除重复元素 88 实例65  数组求和计算 90 实例66  求最大值、最小值和平均值 91 5.2  二维数组 92 实例67  二维数组的创建与使用 92 实例68  矩阵转置 93 实例69  奇数阶幻
*:手机通讯录联系人分: 亲人 同事 朋友 其他 *:手机通讯录里面所有的联系人底层都装进一个集合对象里面 -》 ArrayList *:亲人 同事 朋友 其他型里面所有的属性: char szm;->首字母 String name->联系人名字 int age->联系人年龄 char gender->联系人性别 long phone->手机号码 String zuoJi->座机号码 -》似: 0531-6661760 *:创建联系人对象的时候: szm name age gender phone是必填内容 zuoJi可填可不填 *:如果创建联系人对象的时候 用户如果没有提供zuoJi属性值 那么将zuoJi变量赋值为"无座机号码" *:如果创建联系人对象的时候 用户如果提供zuoJi属性值了 那么直接将zuoJi变量赋值为用户输入的值 *:所有里面的属性要求封装 //一个模块一个模块写 写完测试 测试通过写下一个模块 刚进入cmd里面的主界面 -》 6个小模块 A:显示所有联系人 B:查找某一位联系人 C:添加联系人 D:删除联系人 E:修改联系人 F:结束当前所有操作 显示所有联系人 如果用户选择是A 那么有两种选择: 输入校验: 用户可能输进去的不是a/b 要求重新输入 所有的输入都需要进行校验 a:按照首字母进行显示分: [效果如下:] A 阿磊 1555950427 W 王刚美 18322009876 X 小明 18756789000 Z 张三 15555555555 周凯 18765432189 .... b:按照别进行分显示: [效果如下:] 朋友 张三 15555555555 小明 18756789000 周树人 17499990427 张三 15555445555 亲人 王刚美 18322009876 周凯 18765432189 同事 阿磊 1555950427 ... 查找某一位联系人 如果用户选择的是B: cmd面板显示下面这句话: 请问你是通过联系人名字进行精确查找/手机号码模糊查询 这里用户有两种选择: 用户可以直接的输入要查找联系人的名字 如果集合里面没有该用户 直接显示: 不好意思 当前用户不存在 如果集合里面有该用户 需要将用户的基本信息进行展示: [效果如下:] [输入]张三 [显示] 用户的基本信息: 联系人姓名:张三 联系人电话:15555555555 联系人座机号码:0531-6661760 用户的基本信息: 联系人姓名:张三 联系人电话:15555445555 联系人座机号码:无座机号码 用户还可以直接输入一段电话号码-》出现几个数字就可以 如果集合里面没有用户的号码出现这几个数字的 直接显示: 不好意思 当前用户不存在 如果查找到有这个用户存在 显示下面: [效果如下:] [输入]555555 [显示] 用户的基本信息: 联系人姓名:张三 联系人电话:15555555555 联系人座机号码:0531-6661760 添加联系人 如果用户选择的是C: 需要进行输入校验: 1:输入的大写首字母可能不是大写首字母 是数字 是其他的汉字 2:性别选择的不是A/B 3:注册用户名字的时候 应国家要求 关键字需要屏蔽(...) 4: 输入电话号码的时候 非11为数字 不是数字 不是以138 130 137 158 155 188. .开头 5:输入的年龄非数字 6:选择的分可能不是亲人 朋友 同事 其他 7:座机可能不是按照 区号-号码的形式传进去的 座机号码的区号只能出现0564 0531 0532 cmd里面直接出现下面的内容: 请选择联系人的分A:亲人 B:同事 C:朋友 D:其他 请输入联系人名字大写首字母: 请输入联系人的姓名: 请输入联系人的年龄: 请选择联系人性别:A:男 B:女 请输入联系人的电话: 请输入联系人座机号码(没有请回复N):N/区号-座机号 当用户依次输入所有的信息之后 产生一个联系人 但是需要判断集合里面是否已经存在该用户 如果存在(只要手机号码相同就认为是同一个联系人) 这个联系人存在不能继续添加进通讯录里面 cmd里面显示:对不起 当前用户已经存在 同一个用户不能添加多次 如果不存在 将当前联系人添加进集合里面 cmd里面显示:添加成功 删除联系人 如果用户选择的是D: 直接在cmd里面先以表的形式将所有联系人的信息显示出来: [效果如下:] 编号 姓名 年龄 电话 0 张三 22 155****5555 1 小明 18 187****9000 2 王刚美 28 183****9876 3 阿磊 24 155****4278 4 周凯 38 187****2189 5 周树人 99 174****0427 6 张三 22 155****5555 cmd里面显示:请问你要删除联系人的编号: 输入校验: 需要对当前输入的编码进行判断 是不是数字 如果不是 需要重新输入(从新输进去的内容还是需要进行输入校验) 如果集合里面有该编码对象的元素 从集合里面将当前编号的联系人删除 并在cmd里面显示删除成功 如果集合里面没有该编号对应的联系人 cmd里面显示:对不起 没有该编码对应的联系人 修改联系人 如果用户选择的是E: 输入校验: 修改之后的姓名还是不能出现关键字 修改之后的电话号码还是只能以155 159...开头 修改后的大写首字母还是要判断是否合法 可能用户不是按照格式正确输入 XXX-XXX-XXX(无论是修改前的输入还是修改后的输入格式需要正确) [效果如下] 请输入你要修改联系人的姓名大写首字母 姓名 联系电话(间-隔开):Z-张三-15555555555 请输入修改后的联系人的姓名大写首字母 姓名 联系电话(间-隔开):L-李四-18900000000 找到集合里面对应的联系人将信息修改掉 修改完毕 显示修改成功 如果集合里面没有找到叫张三的联系人 显示修改失败 没有查找到该联系人 结束当前所有操作 如果用户选择的是F: 直接结束当前所有的操作 -》 break
1. Java工具概述 很多人初学程序时,总是在想,那么多的算法该怎么写呀?那么多的数据结构都不熟悉,该怎么实现呀?总是担心英语不好程序学不精通,数学不好写程序无法达到巅峰。学的程序越多,不懂的知识越多。 这种想法很正常,毕竟传统的计算机教育都是从原理开始的,科学原理一般理解起来还能够接受,但是实现起来都很难。计算机发展到了今天,能成为原理的基本已经有人实现了,今天我们学习任何知识都是站在巨人的肩膀上,只要理解程序运行原理,算法的功能即可。底层的各种算法,各种数据结构已经被“巨人们”实现了,一般都放在程序开发,程序员开发过程直接调用即可。 比如现在木工做家具,已经不存在自己砍树、加工木板、一点一点的雕刻了,如果需要木板,直接到市场上购买,需要各种图案,直接到市场购买,木工的工作就是把这些木板修理一下组装成一套家具即可。“工欲善其事,必先利其器”,在Java程序开发过程,很多算法(比如:MD5加密算法)、很多数据结构(比如链表LinkedList)已经实现并且大多放在库的java.util包,程序员只需要了解各种工具的功能就可以直接调用。比如对一个数组进行排序,程序员可以写如下排序算法: 代码演示:数组排序 public static void sort(int[] arrs) { boolean isSwap = false; for (int i = 0; i < arrs.length - 1; i++) { isSwap = false; for (int j = arrs.length - 1; j > i; j--) { if (arrs[j - 1] > arrs[j]) { isSwap = true; int tmp = arrs[j - 1]; arrs[j - 1] = arrs[j]; arrs[j] = tmp; } } } } 该排序算法只能对整数数组排序,还有其他数据型呢?就需要重载很多方法进行排序操作。而在Java有一个Arrays的sort方法已经实现各种数据型的排序算法。程序员只需要调用该方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,56,24}; Arrays.sort(ages); for (int i = 0; i < ages.length; i++) { System.out.println(ages[i]); } } 在Java开发,提供了很多工具,我们即将学习最常见的工具,比如对日期的操作,对集合的操作等。具体更多的工具,请参考JavaDoc文档。 2. java.util.Date Date包装了毫秒值,毫秒值表示自1970年1月1日00:00:00 GMT开始到现在经过的毫秒数。该的大部分构造器和方法都已经过时,但是该使用非常方便,因此目前使用还很普遍,该的另一个主要功能是,在数据库操作,它允许将毫秒值表示为SQL DATE值,是数据库操作java.sql.Date的父。关于数据库操作,将在第八章开始讲解。 该目前推荐使用的构造方法有两个: 构造方法 说明 Date() 按照当前系统时间构造一个Date对象。 Date(long date) 按照给定的时间毫秒值构造一个 Date 对象。 表1 java.util.Date的构造方法 主要的方法有: 返回 异常 说明 boolean after(Date when) 测试当前对象表示的时间是否在指定时间之后。 boolean before(Date when) 测试当前对象表示的时间是否在指定时间之前。 long getTime() 返回当前对象对应的时间毫秒值 void setTime(long time) 设置时间 表2 java.util.Date的主要方法 代码演示:时间设置 public class Demo2 { public static void main(String[] args) { Date date=new Date(); ① date.setTime((10L*365+2)*24*60*60*1000); ② System.out.println(date); ③ } } 代码解析: ① 构造当前系统时间。 ② 设置时间值为1970年后10年的时间的毫秒值,10年间有2个闰年,10年的天数是:10*365+2,10L表示当前值是long型。 ③ 调用Date的toString方法输出结果。 代码输出结果: Tue Jan 01 08:00:00 CST 1980 Q 老师,时间毫秒值从1970年1月1日0:00.000开始计算,上面示例10年后应该是1980年1月1日0:00.000,为什么输出结果是:1980年1月1日 8:00呢? A java.util.Date型表示的是GMT时间,本身输出是国际化输出,由于国处于东八区时间,因此输出结果是早上8点。而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date的大多数方法都被标识为过时,表示更灵活的时间请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而国更习惯于“年-月-日”的形式输出,这种特殊格式的输出需要用到Java格式化工具。 3. 格式化工具 格式化的目的是把一个对象以不同的格式表示,以满足不同环境对格式的要求,比如:前面学习的Date对象实质是一个以毫秒值表示的时间,但是在不同的国家和地区表示方式不一样。那么就需要对Date进行格式化处理。接下来主要学习Java对日期时间的格式化和对数字的格式化处理。  日期时间格式化 Date包含了日期和时间,在Java编程,日期通常指年、月、日,时间则指时、分、秒、毫秒。Java对Date进行格式化使用java.text.DateFormat。在格式表示,经常采用4种格式,这四种格式被定义为DateFormat的常量。下表所示: 格式 说明 SHORT 以最短的格式表示,比如:09-8-20 MEDIUM 比short完整表示方式,比如:2009-8-20 LONG 比medium更完整的表示方式,比如:2009年8月20日 FULL 综合的表示方式,比如:2009年8月20日 星期四 表3 DateFormat的四种表示格式 因为不同国家地区需要格式化的结果不同,Locale对象表示了不同的区域,Locale定义目前全世界几乎所有地区的对象表示,比如: 格式 说明 Locale.CHINA 国地区 Locale.US 美国地区 Locale.FRANCE 法国地区 Locale.CANADA 加拿大地区 表4 Locale对部分地区的表示 DateFormat是一个抽象,不能直接实例化,可以使用下表的静态方法得到DateFormat的对象方法 说明 getDateInstance() 返回默认地区,默认格式的关于日期的DateFormat对象。 getDateInstance(int) 返回指定格式下,默认地区的关于日期的DateFormat对象。 getDateInstance(int, Locale) 返回指定格式,指定地区的关于日期的DateFormat对象。 getTimeInstance() 返回默认地区,默认格式的关于时间的DateFormat对象。 getTimeInstance (int) 返回默认地区,指定格式的关于时间的DateFormat对象。 getTimeInstance (int, Locale) 返回指定地区,指定格式的关于时间的DateFormat对象。 getDateTimeInstance() 返回默认地区、默认日期格式、默认时间格式的关于日期和时间的DateFormat对象。 getDateTimeInstance (int,int) 返回默认地区、指定日期格式、指定时间格式的关于日期和时间的DateFormat对象。 getDateTimeInstance (int,int, Locale) 返回指定地区、指定日期格式、指定时间格式的关于日期和时间的DateFormat对象。 表5 获取DateFormat对象的静态方法 调用DateFormat对象的format方法可以把Date对象转换成为指定格式的String型数据。比如: Date today=new Date(); DateFormat df=DateFormat.getDateInstance(DateFormat.FULL,Locale.CHINA); String result=df.format(today); 代码演示:日期的不同格式 import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class Demo3 { public static void main(String[] args) { Date today = new Date(); Locale[] locals = new Locale[] { Locale.CHINA, Locale.US, Locale.UK }; for (int i = 0; i < locals.length; i++) { DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT, locals[i]); DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM, locals[i]); DateFormat df3 = DateFormat.getDateInstance(DateFormat.LONG, locals[i]); DateFormat df4 = DateFormat.getDateInstance(DateFormat.FULL, locals[i]); System.out.println(locals[i].getDisplayCountry() + "的日期形式:"); System.out.println("\tShort格式:" + df1.format(today)); System.out.println("\tMedium格式:" + df2.format(today)); System.out.println("\tLong格式:" + df3.format(today)); System.out.println("\tFull格式:" + df4.format(today)); } } } 代码输出结果: 国的日期形式: Short格式:09-8-20 Medium格式:2009-8-20 Long格式:2009年8月20日 Full格式:2009年8月20日 星期四 美国的日期形式: Short格式:8/20/09 Medium格式:Aug 20, 2009 Long格式:August 20, 2009 Full格式:Thursday, August 20, 2009 英国的日期形式: Short格式:20/08/09 Medium格式:20-Aug-2009 Long格式:20 August 2009 Full格式:20 August 2009 在Java程序设计过程,对应日期和时间的格式化,还有一个简单的格式化方式,就是java.text.SimpleDateFormat,该用字符串指定日期和时间的格式,字符串的字符称为模式字符,模式字符区分大小写。常见的模式字符定义如下: 字母 日期或时间元素 y 年 M 年的月份 w 年的周数 W 月份的周数 D 年的天数 d 月份的天数 F 月份的星期 E 星期的天数 a Am/pm 标记 H 一天的小时数(0-23) k 一天的小时数(1-24) K am/pm 的小时数(0-11) h am/pm 的小时数(1-12) m 小时的分钟数 s 分钟的秒数 S 毫秒数 表6 模式字符串 例如: 日期和时间模式 结果 "EEE, MMM d, ''yy" Wed, Jul 4, '01 "h:mm a" 12:08 PM "yyyy-MM-dd HH:mm:ss" 2009-8-20 14:22 "yyyy年MM月dd HH:mm:ss" 2009年8月20 14:22:23 表7 模式字符串示例 SimpleDateFormat是DateFormat的子,用法和DateFormat基本一致,主要使用format()方法。 代码演示:SimpleDateFormat进行日期转换 import java.text.SimpleDateFormat; import java.util.Date; public class Demo4 { public static void main(String[] args) { Date today = new Date(); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss"); SimpleDateFormat format3 = new SimpleDateFormat("HH:mm:ss"); SimpleDateFormat format4 = new SimpleDateFormat("yyyy"); System.out.println(format1.format(today)); System.out.println(format2.format(today)); System.out.println(format3.format(today)); System.out.println(format4.format(today)); } } 代码输出结果: 2009-08-20 2009年08月20 14:25:58 14:25:58 2009 在程序设计时,界面上用户输入的基本上都是字符串,如果字符串输入一个出生年月,如何把该字符串转换成Date型呢?可以使用SimpleDateFormat的parse()方法。 代码演示:SimpleDateFormat解析日期 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo5 { public static void main(String[] args) { String birthday="1980-04-16"; SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); try { Date bir=format.parse(birthday); System.out.println(bir); } catch (ParseException e) { ① // TODO Auto-generated catch block e.printStackTrace(); } } } 代码解析: ① 用SimpleDateFormat解析日期的时候需要处理其的ParseException异常。  数字格式化 对数字的格式化,在程序处理也是非常常用的,数字格式化主要对小数点位数,表示的形式(比如:百分数表示)等格式处理。 NumberFormat 是所有数值格式的抽象基。此提供格式化和解析数值的接口。若要格式化当前Locale的数值,可使用其一个方法: myString = NumberFormat.getInstance().format(myNumber); 若要格式化不同 Locale 的日期,可在调用getInstance方法时指定它。 NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH); 方法 说明 getInstance() 获取常规数值格式。可以指定Local参数。 getNumberInstance() 获取常规数值格式。可以指定Local参数。 getIntegerInstance() 获取整数数值格式。可以指定Local参数。 getCurrencyInstance () 获取货币数值格式。可以指定Local参数。格式化后的数据前面会有一个货币符号,比如:“¥” getPercentInstance() 获取显示百分比的格式。可以指定Local参数。比如:小数 0.53 将显示为 53%。 表8 获取NumberFormat对象 代码演示:NumberFormat进行数字格式化 import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Locale; public class Demo6 { public static void main(String[] args) { double mynum1 = 230456789; double mynum2 = 0.23; NumberFormat nf1 = NumberFormat.getInstance(Locale.CHINA); NumberFormat nf2 = NumberFormat.getCurrencyInstance(Locale.CHINA); NumberFormat nf3 = NumberFormat.getCurrencyInstance(Locale.US); NumberFormat nf4 = NumberFormat.getPercentInstance(); System.out.println(nf1.format(mynum1)); System.out.println(nf2.format(mynum1)); System.out.println(nf3.format(mynum1)); System.out.println(nf4.format(mynum2)); } } 代码输出结果: 230,456,789 ¥230,456,789.00 $230,456,789.00 23% 关于更复杂的数字格式化,可以使用java.text.DecimalFormat进行处理,该通过模式字符串对数字格式化。 代码演示:DecimalFormat进行数字格式化 import java.text.DecimalFormat; public class Demo7 { public static void main(String[] args) { int num1=1234567; double num2=0.126543; DecimalFormat df1=new DecimalFormat("#,###"); ① DecimalFormat df2=new DecimalFormat("#.00"); ② DecimalFormat df3=new DecimalFormat("00.#"); ③ DecimalFormat df4=new DecimalFormat("0.##E0"); ④ DecimalFormat df5=new DecimalFormat("0.##%"); ⑤ System.out.println(df1.format(num1)); System.out.println(df2.format(num2)); System.out.println(df3.format(num2)); System.out.println(df4.format(num1)); System.out.println(df5.format(num2)); } } 代码解析: ① #:代表一个位置数字,如果该位置数字不存在,则省略不显示。 ,:代表数字的分隔符,此示例用三位分隔一次。 ② 0:代表一个数字位置,如果该位置不存在,则用0来补充。小数多余部分四舍五入。 .:表示小数点。 #:当前位置是0,则省略不显示。 ③ #:小数部分只显示1位小数,并且进行四舍五入。 ④ E:科学计数法。 ⑤ %:用百分数表示数字。 代码输出结果: 1,234,567 .13 00.1 1.23E6 12.65% 4. java.util.Calendar Calendar是一个抽象,它为特定的值诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换和操作日历字段(例如获得下星期的日期)提供了丰富的方法。并且可以非常方便的与Date型进行相互转换。 使用静态方法getInstance()和getInstance(Locale locale)获取Calendar对象。Calendar定义了很多表示日期时间各个部分的常量字段。 返回值 字段 说明 static int AM 指示从午夜到午之前这段时间的 AM_PM 字段值。 static int DATE get 和 set 的字段,指示一个月的某天。 static int DAY_OF_MONTH get 和 set 的字段,指示一个月的某天。 static int DAY_OF_WEEK get 和 set 的字段,指示一个星期的某天。 static int DAY_OF_YEAR get 和 set 的字段,指示当前年的天数。 static int HOUR get 和 set 的字段,指示上午或下午的小时。 static int HOUR_OF_DAY get 和 set 的字段,指示一天的小时。 static int MINUTE get 和 set 的字段,指示一小时的分钟。 static int MONTH 指示月份的 get 和 set 的字段。 static int PM 指示从午到午夜之前这段时间的 AM_PM 字段值。 static int SECOND get 和 set 的字段,指示一分钟的秒。 static int WEEK_OF_MONTH get 和 set 的字段,指示当前月的星期数。 static int WEEK_OF_YEAR get 和 set 的字段,指示当前年的星期数。 static int YEAR 表示年的 get 和 set 的字段。 表9 Calendar的日期字段 Calendar提供了丰富的操作方法,可以单独对年、月、日、时、分、秒等字段单独读取,也可以对星期设置,常用方法如下: 返回 方法 说明 void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 boolean after(Object when) 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。 boolean before(Object when) 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。 int get(int field) 返回给定日历字段的值。 int getActualMaximum(int field) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。 int getActualMinimum(int field) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。 Date getTime() 返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。 long getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位。 void set(int field, int value) 将给定的日历字段设置为给定值。 void set(int year, int month, int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 void set(int year, int month, int date, int hourOfDay, int minute) 设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。 void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。 void setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值。 表10 Calendar常用方法 代码演示:Calendar的使用 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class Demo8 { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar cale = Calendar.getInstance(); cale.set(2009, 8, 20);// 年月日同时设置 ① cale.set(Calendar.DAY_OF_WEEK, 2); ② Date date1 = cale.getTime(); ③ System.out.println(sdf.format(date1)); cale.set(Calendar.MONTH, 3); ④ cale.set(Calendar.DAY_OF_MONTH, 28); ⑤ cale.set(Calendar.YEAR, 1978); ⑥ Date date2 = cale.getTime(); System.out.println(sdf.format(date2)); } } 代码解析: ① 可以使用set方法对年月日时分秒同时设置。 ② 把天定位到星期一,Calendar认为第一天是星期天,设置2就是星期一。 ③ Calendar型转换为日期时间等价的Date型。 ④ 单独设置月。 ⑤ 单独设置日。 ⑥ 单独设置年。 代码输出结果: 2009-09-21 17:21:37 1978-04-28 17:21:37 Q 老师,为什么通过Calendar设置月与输出差1个月? A 不是差一个月,而是在Calendar对月份的计算是从0开始的,因此设置月份11其实就是国的十二月。 5. Java集合的操作 Java学习了集合的操作,比如:排序、搜索等,Javajava.util.Arrays对数组操作,使用java.util.Collections对集合框架List操作。他们都是工具方法全部都是静态方法。  Arrays方法 1. void Arrays.sort(T[]) 对数组的元素按照升序进行排序。T代表某一数据型。 代码演示:binarySearch使用 public static void main(String[] args) { int[] arrs=new int[]{12,54,12,8765,123,34,54,23,67}; Arrays.sort(arrs); for (int i : arrs) { System.out.print(i+" "); } } 代码输出结果: 12 12 23 34 54 54 67 123 8765 在sort方法,遇到对象数组的排序时,要给对象提供排序的依据,实现Comparator接口,可以在接口的compare方法指定排序规则,实现Comparator接口的对象称为比较器。 有一个Student的数组,现在按照年龄进行升序排序,那么Comparator接口compare方法实现如下: 代码演示:compare重新按年龄实现 class Student { String name; int age; public Student(String name, int age) { super(); this.name = name; this.age = age; } public String toString() { return name + "," + age; } } class StuCom implements Comparator<Student> { ① public int compare(Student stu1, Student stu2) { ② if (stu1.age > stu2.age) { return 1; } else if (stu1.age == stu2.age) { return 0; } else { return -1; } } } public static void main(String[] args) { Student[] stus = new Student[] { new Student("小美", 21), new Student("阿聪", 22), new Student("武大郎", 28), new Student("阮小七", 26), new Student("晁盖", 30), new Student("鲁智深", 29), new Student("孙二娘", 26), new Student("扈三娘", 23), new Student("武松", 24) }; Arrays.sort(stus, new StuCom()); for (Student student : stus) { System.out.println(student); } } 代码解析: ① 定义一个比较器,必须实现Comparator接口,否则系统无法对一个对象数组进行搜索规则。 ② 实现Comparator接口的compare方法,对该方法的两个参数进行比较,就是制定了比较的规则。 代码输出结果: 小美,21 阿聪,22 扈三娘,23 武松,24 阮小七,26 孙二娘,26 武大郎,28 鲁智深,29 晁盖,30 2. List Arrays.asList(Object[] objs) 把指定的数组转换为List对象。 代码演示:asList使用 import java.util.Arrays; import java.util.List; public class Demo9 { public static void main(String[] args) { String[] strs={"aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj"}; List list=Arrays.asList(strs); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } 3. int Arrays.binarySearch(T[] objs, key) 在数组objs查找key的位置,返回key的下标,如果查找不到key,则返回负值。 int Arrays.binarySearch(T[] objs,int fromIndex,int toIndex , key) 在数组objs从fromIndex到toIndex位置上查找key,返回key的下标,如果查找不到,返回一个负值。 在binarySearch方法调用之前一定要保证数组已经是排序的,如果没有排序,可以使用Arrays.sort(T[]) 进行排序,然后再进行查找。 代码演示:binarySearch使用 public static void main(String[] args) { String[] strs={"aaa","bbb","ccc","ddd","eee","fff","ggg","hhh","iii","jjj"}; Arrays.sort(strs); System.out.println(Arrays.binarySearch(strs, "ccc")); System.out.println(Arrays.binarySearch(strs, 4,8,"ggg")); System.out.println(Arrays.binarySearch(strs, 4,8,"aaa")); } 如果数组是一个自定义的对象数组,那么搜索之前要先指定比较器。 代码演示:binarySearch搜索对象使用 class StuCom implements Comparator<Student> { ① public int compare(Student stu1, Student stu2) { if (stu1.age > stu2.age) { return 1; } else if (stu1.age == stu2.age && stu1.name.equals(stu2.name)) { return 0; } else { return -1; } } } public static void main(String[] args) { Student[] stus = new Student[] { new Student("小美", 21), new Student("阿聪", 22), new Student("武大郎", 28), new Student("阮小七", 26), new Student("晁盖", 30), new Student("鲁智深", 29), new Student("孙二娘", 26), new Student("扈三娘", 23), new Student("武松", 24) }; Student s = new Student("晁盖", 30); System.out.println(Arrays.binarySearch(stus, s, new StuCom())); ② } 代码解析: ① 该比较器规定了要比较的型就是Student型,因此这里使用泛型。 ② 指定了对象数组,对象和比较器的方法进行搜索。结果返回搜索到的对象在数组的下标。 除了上面介绍Arrays的方法外,还有一些其它的方法方法 说明 T[] copyOf(T[] t,int length) 把一个数组赋值到长度是length的新数组。T表示数据型。 fill(T[] t,N newValue) 用一个固定值填充数组所有元素。 表11 Arrays其他常用方法。  Collections Collections与Arrays一样都提供了一系列的静态方法,只是Arrays主要操作数组,而Collections主要操作List集合,同时还有对Set的相关操作。 代码演示:Collections操作 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Demo10 { static class Student implements Comparable { ① String name; int age; public Student(String name, int age) { super(); this.name = name; this.age = age; } public String toString() { return name + "," + age; } public int compareTo(Object o) { ② Student stu = (Student) o; if (this.age > stu.age) { return 1; } else if (this.age == stu.age && this.name.equals(stu.name)) { return 0; } else { return -1; } } } public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); Student[] stus = new Student[] { new Student("小美", 21), new Student("阿聪", 22), new Student("武大郎", 28), new Student("阮小七", 26), new Student("晁盖", 30), new Student("鲁智深", 29), new Student("孙二娘", 26), new Student("扈三娘", 23), new Student("武松", 24) }; Collections.addAll(list, stus); ③ Collections.sort(list); ④ for (Student student : stus) { System.out.println(student); } Student stu = new Student("鲁智深", 29); int pos = Collections.binarySearch(list, stu); ⑤ System.out.println(pos); } } 代码解析: ① 在List查找一个对象时,该对象必须实现Comparable接口。 ② compareTo方法使用当前对象与参数对象进行比较。 ③ 把一个数组对象复制到List对象方法Collections.addAll(……)方法 ④ 对List集合的元素按照自然顺序排序。 ⑤ 二分法查找,在List集合查找Student对象,要求Student对象必须实现Comparable接口。 Collections的主要操作有: 1. int binarySearch(List<? extends Comparable<? super T>> list, T key) 该方法是寻找T对象List匹配元素的位置。要求List集合必须全部都是T对象,T对象必须实现Comparable接口,如果查找成功返回对象List的位置,否则返回负数。该方法执行前首先要对List对象的元素排序,该方法还有一个重载方法是: int binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 该方法也是查找T对象List的位置,List集合必须全部是T元素,但是不要去T必须实现Comparable接口,而是要求传入一个比较器。 2. sort(List<T> list) 对List的元素按照自然排序。要按照用户自定义方式进行排序,必须实现Comparator接口。 sort (List<T> list, Comparator<? super T> c) 根据指定比较器产生的顺序对指定列表进行排序。 3. swap(List<?> list, int i, int j) 在指定列表的指定位置处交换元素。 4. reverse(List<?> list) 反转指定列表元素的顺序。 在Collections还有其他一些方法,可以参考JavaDoc文档。 6. java.lang.Mathjava.lang.Math,包含用于执行基本数学运算的方法,如指数、对数、平方根和三角函数等。Math定义的所有方法和常量全部都是静态的,使用非常方便。定义的常量主要有两个:Math.E和Math.PI分别表示自然对数的底数和圆周率。 Math主要的方法有: 返回 方法 说明 static T abs(T a) 返回 long 值的绝对值。 static double acos(double a) 返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。 static double atan(double a) 返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。 static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 static double cos(double a) 返回角的三角余弦。 static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 static double log(double a) 返回 double 值的自然对数(底数是 e)。 static double log10(double a) 返回 double 值的底数为 10 的对数。 static T max(T a, T b) 返回两个 double 值较大的一个。 static T min(T a, T b) 返回两个 long 值较小的一个。 static T pow(T a, T b) 返回第一个参数的第二个参数次幂的值。 static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 static int round(float a) 返回最接近参数的 int。 static double sin(double a) 返回角的三角正弦。 static double sqrt(double a) 返回正确舍入的 double 值的正平方根。 static double tan(double a) 返回角的三角正切。 表12 Math的常见静态方法
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础型与运算符(教学视频:39分钟) 9   2.1 基础型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素型不匹配异常(ArrayStoreException) 56   实例38 强制型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定时发生的异常(ClassNotFoundException) 62   实例45 请求的方法存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一维数组的创建与使用 78   实例56 按相反的顺序输出 79   实例57 奇偶分组 80   实例58 找宝 81   实例59 寻找最小数 82   实例60 我的位置在哪里 83   实例61 复制数组 85   实例62 插入新元素 86   实例63 数组的合并 87   实例64 去除重复元素 88   实例65 数组求和计算 90   实例66 求最大值、最小值和平均值 91   5.2 二维数组 92   实例67 二维数组的创建与使用 92   实例68 矩阵转置 93   实例69 奇数阶幻方 94   实例70 求方阵对角线之和 96   实例71 矩阵的加法 97   实例72 矩阵的减法 98   实例73 快递报价单 99   5.3 数组的排序 101   实例74 冒泡排序法 102   实例75 数组递增排序 103   实例76 部分数组递增排序 103   实例77 选择排序法 104   实例78 快速排序法 106   第6章 字符串(教学视频:138分钟) 108   6.1 字符串String 108   实例79 创建字符串 108   实例80 如何使用charAt()方法计算重复字符 109   实例81 按字母顺序比较大小 110   实例82 首尾相连 111   实例83 字符串间的比较 112   实例84 字符集的解码方法 113   实例85 寻找指定字符第一次出现的位置 114   实例86 寻找指定字符最后出现的位置 115   实例87 我究竟有多长 116   实例88 替换指定的字符 117   实例89 分割字符串 117   实例90 如何使用substring()方法截取子串 118   实例91 分解字符串 119   实例92 字母大小写转换 120   实例93 去除多余的空白 120   实例94 原始数组型的String形式 121   实例95 Java合法标识符 122   实例96 显示一周各星期的名称 123   实例97 构造空心方框 124   实例98 这一天是星期几 125   实例99 大小写互换 127   实例100 输出指定范围的素数 128   实例101 我出现了几次 129   实例102 算术表达式求值器 129   实例103 字符串对齐调整器 137   实例104 字符串的加密 139   实例105 使用正则表达式验证电话号码的格式 141   6.2 字符串缓存StringBuffer 143   实例106 创建字符串缓存 143   实例107 提取单个字符 144   实例108 给指定字符赋值 145   实例109 插入新的字符 146   实例110 插入新的字符串 146   实例111 获取字符串的子串 147   实例112 删除指定的字符 148   实例113 倒置字符串 149   实例114 去除重复字符 149   实例115 检查是否是回文 151   第7章 输入/输出流(教学视频:116分钟) 152   7.1 文件和目录 152   实例116 显示文件的基本信息 152   实例117 显示目录的基本信息 153   实例118 在指定的目录下创建单个文件 156   实例119 在指定的目录下创建多个临时文件 158   实例120 删除指定目录下的文件 160   实例121 移动指定目录下的文件 163   实例122 文件搜索引挚 167   7.2 字节流 169   实例123 复制指定目录下的文件 170   实例124 显示文件的内容 173   实例125 将数据保存到指定的文件 175   实例126 将由键盘录入的信息保存到文件 176   实例127 一个文件变成多个小文件 178   实例128 多个小文件合成一个文件 181   实例129 统计指定文件的字符个数 183   实例130 对象的序列化与反序列化 185   实例131 同时显示多个文件 187   实例132 生成zip压缩文件 189   实例133 解压缩zip文件 192   实例134 生成Excel文件 194   实例135 读取Excel文件的内容 198   实例136 生成PDF文件 199   实例137 读取PDF文件的内容 203   实例138 用iText生成Word文件 205   实例139 利用POI读取Word文件的内容 208   7.3 字符流 209   实例140 按顺序创建文件 210   实例141 按顺序读取文件 211   实例142 追加文件内容 211   实例143 只显示文件指定的字符 214   实例144 读取jar包文件 215   实例145 文件的加密/解密操作 217   实例146 复制图片 219   实例147 随机读写Java文件 221   第3篇 Java面向对象编程   第8章 面向对象(教学视频:72分钟) 226   8.1 226   实例148 简单的通讯录 226   实例149 简单的长度单位转换 227   实例150 卡车和卡车司机之间的关系 229   实例151 双色球 231   8.2 成员变量和方法 236   实例152 使用作为成员变量 236   实例153 构造方法 237   实例154 使用静态成员变量计算内存实例化的对象数目 239   实例155 实现加减乘除的方法 240   8.3 面向对象的设计模式 241   实例156 Singleton单例模式 242   实例157 招聘(简单工厂模式) 243   实例158 同学聚会(工厂方法模式) 244   实例159 图书展(抽象工厂模式) 246   实例160 汽车适配器(Adapter适配器模式) 248   8.4 垃圾回收 250   实例161 垃圾回收的机制 250   第9章 面向对象的四大特征(教学视频:65分钟) 252   9.1 抽象 252   实例162 求自定义几何图形的面积和周长 252   实例163 使用抽象方法实现的支票夹 254   9.2 封装 257   实例164 世界小姐参赛资格 257   实例165 自定义复数 261   9.3 继承 264   实例166 轿车与本田的关系 264   实例167 继承关系的加载顺序 266   实例168 如何访问同名的方法或变量 268   实例169 super()方法的使用 271   实例170 this方法的使用 274   实例171 一张考试成绩单 275   实例172 银行自动存取一体机 278   9.4 多态 284   实例173 饮食文化 284   实例174 使用构造方法的重载计算课程的GPA值 287   第10章 内部与接口(教学视频:41分钟) 290   10.1 成员内部 290   实例175 成员内部的使用规范 290   实例176 猜谜 292   10.2 方法内部 294   实例177 局部内部的使用规范 294   实例178 奖学金的评分标准 295   10.3 匿名内部 297   实例179 匿名内部的使用规范 297   实例180 电话与移动电话 299   10.4 静态内部 300   实例181 静态内部的使用规范 300   实例182 苹果的来历 302   10.5 接口 303   实例183 求n的幂数与倍数 304   实例184 商品订单 306   实例185 多功能排序 310   第11章 Java常用(教学视频:66分钟) 315   11.1 数学Math 315   实例186 求圆周率∏值 315   实例187 求对数值 316   实例188 使用取整函数 317   11.2 Random的使用 318   实例189 随机数 319   实例190 验证码 322   11.3 Date和Calendar 324   实例191 使用Date获取系统的当前时间 324   实例192 使用DateFormat获取系统的当前时间 325   实例193 使用GregorianCalendar获取系统的当前时间 326   实例194 使用SimpleDateFormat获取系统的当前时间 329   实例195 显示某年某月某一周的信息 330   实例196 显示某年某月的信息 332   实例197 时间的设置与获取 334   实例198 万年历(农历和阳历的互换) 337   11.4 Formatter的使用 347   实例199 时间格式转换符的使用 347   实例200 数据格式转换符的使用 349   11.5 System的使用 351   实例201 记录程序执行的时间 351   实例202 程序的退出 352   实例203 获取程序运行环境的信息 353   第4篇 Java高级开发技术   第12章 集合(教学视频:45分钟) 358   12.1 Set 358   实例204 利用HashSet删除学生 358   实例205 不重复的随机数序列 360   实例206 运用映射的相关(Map) 363   实例207 运用集的相关(Set) 365   12.2 List 368   实例208 增加所需的元素 368   实例209 Iterator迭代器的使用 370   实例210 谁是幸运儿 371   实例211 自定义Queue队列 373   实例212 List、Set与Array之间的相互转换 375   实例213 二分查找法的实现方法 377   实例214 模拟操作系统的进程调度 379   实例215 利用栈将字符串逆序输出 381   实例216 动态的数组链表 382   实例217 你能猜出鱼是谁的宠物吗? 387   实例218 使用CollectionsList的排序操作 393   实例219 LinkedList的添加删除操作 395   实例220 运用Vector 397   实例221 改变Properties文件的键值 399   第13章 多线程编程(教学视频:121分钟) 405   13.1 多线程的五种基本状态 405   实例222 启动线程 405   实例223 参赛者的比赛生活(线程休眠唤醒) 407   实例224 资源搜索并下载(线程等待和通报) 410   实例225 模拟淘宝购物买卖双方交易问题 412   实例226 携子之手 与子偕老(join) 415   实例227 线程让步(Yield) 417   实例228 会走动的钟(多线程) 419   实例229 变形金刚的守护神(守护线程) 424   实例230 查看JVM所有的线程的活动状况 426   实例231 模仿网络快车下载工具下载文件 428   13.2 多线程的同步与互斥 436   实例232 多线程同步方法的实例 436   实例233 ATM存取一体机(线程同步互斥) 437   实例234 我的钱哪里去了 440   实例235 门锁打不开了(死锁) 444   实例236 门锁终于被打开了(解决死锁) 446   实例237 一个死锁的例子 448   13.3 线程的优先级 451   实例238 排座位(线程优先级) 451   实例239 赛车 454   13.4 定时器 458   实例240 定时器(Timer) 458   实例241 数字定时器 459   13.5 线程连接池 462   实例242 手术任务(线程池) 462   实例243 模拟人工服务台(线程连接池) 466   13.6 线程应用实例 471   实例244 下雪的村庄 472   实例245 小飞侠 474   实例246 飞流直下 477   实例247 多线程断点续传 479   实例248 滚动的珠子 485   实例249 余额查询 489   实例250 滚动的文字 492   实例251 漂浮效果 495   实例252 监视内存的使用情况 499   实例253 璀璨的星空 501   实例254 银行和超市业务的模拟 505   第14章 泛型(教学视频:43分钟) 511   14.1 泛型基础 511   实例255 一个关于泛型的简单例子 511   实例256 带两个型参数的泛型 513   实例257 有界型程序示例 514   实例258 通配符使用示例 515   实例259 泛型方法使用示例 516   实例260 泛型接口示例 518   实例261 泛型实现坐标打印 519   14.2 泛型的继承 521   实例262 继承泛型示例 521   实例263 继承非泛型示例 522   实例264 泛型型识别示例 523   实例265 强制型转换示例 525   14.3 擦拭 526   实例266 无限界的擦拭 526   实例267 有限界的擦拭 527   14.4 集合泛型 528   实例268 Hashtable的泛型化 528   实例269 多功能画笔 529   第15章 网络编程(教学视频:52分钟) 534   15.1 IP地址 534   实例270 获取计算机名与IP地址 534   实例271 获取网址的IP地址 535   实例272 判断两个网址的主机名是否一样 536   实例273 测试IP的型 537   实例274 查找主机 538   实例275 主机所支持的协议 539   15.2 URL的使用 540   实例276 使用URL访问网页 540   实例277 URL的组成部分 541   实例278 通过指定的URL可以获取网页的源代码 542   实例279 一对多通信模式 544   实例280 自制浏览器 549   实例281 扫描TCP端口 551   实例282 TCP协议服务器 552   实例283 TCP协议客户机 553   实例284 Socket连接信息 555   实例285 Echo服务的客户端是如何实现的? 556   实例286 检测本机的服务端口 558   实例287 下载的页面不丢失链接 559   实例288 如何对网页进行重新定向 560   实例289 在Internet上搜索对象 560   实例290 LAN使用代理服务器 562   实例291 BBS论坛服务器端 567   实例292 UDP报文的发送与接收 579   第16章 数据库技术(教学视频:38分钟) 583   实例293 加载JDBC驱动程序 583   实例294 通过JDBC对数据库进行查询 584   实例295 数据库更新 585   实例296 获取数据库的基本信息 586   实例297 获取数据库对SQL支持的信息 589   实例298 处理访问数据库出现的常见异常情况 591   实例299 在Servlet连接数据库 593   实例300 数据分页显示 595   实例301 批处理 601   实例302 事物处理 604   实例303 调用存储过程 608   实例304 连接ODBC数据库 611   实例305 数据库图片文件的存取 614   第17章 界面设计--Swing(教学视频:88分钟) 618   17.1 Swing组件介绍及应用 618   实例306 JFrame框架的应用 618   实例307 Border的使用 619   实例308 使用Icon组件显示一张图片 620   实例309 Icon接口的应用 621   实例310 JLabel组件 622   实例311 Icon应用到JLabel 623   实例312 JButton的使用 624   实例313 在JButton上设置快捷键 625   实例314 设置默认按钮 626   实例315 使用JCheckBox组件 627   实例316 JCheckBox事件处理 629   实例317 JRadioButton的使用 630   实例318 JComboBox的使用 632   实例319 利用ComboModel构造JComboBox 633   实例320 DefaultComboBoxModel的使用 635   实例321 建立有图像的JComboBox 636   实例322 建立可自行输入的JComboBox 637   实例323 JComboBox的事件处理 638   实例324 JTextField组件的使用 640   实例325 使用JTextArea组件 641   17.2 页面布局及事件监听 642   实例326 BorderLayout版面布局 643   实例327 FlowLayout布局管理 644   实例328 应用GridLayout设计版面 645   实例329 如何使用BoxLayout布局管理器 647   实例330 使用ActionEvent监听组件 648   实例331 使用WindowAdapter实现鼠标事件 649   实例332 使用MouseMotionListener监听鼠标 650   实例333 使用KeyListener监听键盘 652   17.3 组件的综合应用 654   实例334 计算器 654   实例335 创建树菜单 657   实例336 在节点显示详细信息 658   第18章 Applet小应用程序(教学视频:39分钟) 662   实例337 不断变大的文字 662   实例338 灯光扫描的效果 664   实例339 字体逐渐展开的效果 666   实例340 飞舞的气球 668   实例341 逐渐浮现的图片 671   实例342 火焰边框的特效 674   实例343 局部放大效果 677   实例344 水波荡漾的效果 679   实例345 漫天飞花 682   实例346 动感影集 685   实例347 彩虹字 688   实例348 多功能按键 690   第19章 多媒体与图像处理(教学视频:51分钟) 694   19.1 多媒体 694   实例349 测试音频播放器 694   实例350 测试视频播放器 696   实例351 视频反色效果 698   实例352 实现一个录音机 703   实例353 建立一个调色板 707   19.2 图像处理 710   实例354 在计算机内存创建一个图像 710   实例355 会移动的图像 712   实例356 将图片进行180度旋转 714   实例357 处理图像的明暗度 716   实例358 如何将彩色图转化为灰度图 721   实例359 锐化和模糊图像 724   实例360 显示一个图像的轮廓 727   实例361 如何放大及拉伸图像 730   第20章 JSP开发技术(教学视频:62分钟) 735   20.1 JSP基础 735   实例362 网页版的9×9乘法口诀 735   实例363 Java Servlet小程序 737   实例364 Servlet对表单的处理过程 738   实例365 获取/修改JavaBeans的内容 741   20.2 JSP程序设计 743   实例366 喜连大三元 743   实例367 运气对对碰 748   实例368 文字样式统计器 752   实例369 图形统计器 754   20.3 垃圾信息投诉站 756   实例370 创建投诉表单 756   实例371 保存投诉的内容 760   实例372 实现投诉站的后台操作 762   实例373 取消投诉内容 764   实例374 站内信 767   20.4 网站在线评估系统 769   实例375 创建评估问卷 769   实例376 实现评估的后台操作 771   实例377 查看评估结果 773   第5篇 Java综合案例   第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778   21.1 实例介绍 778   21.2 框架设计 779   21.2.1 项目的总体结构 779   21.2.2 搭建开发环境 779   21.2.3 确定项目工程目录 779   21.3 公用模块设计 780   21.4 客户端程序 780   21.4.1 客户端的工作流程 780   21.4.2 编写客户端的源程序 781   21.4.3 客户端源的程序解读 783   21.5 服务器端程序 785   21.5.1 服务器端的工作流程 785   21.5.2 编写服务器端的源程序 785   21.5.3 服务器端的源程序解读 788   21.6 小结 790   第22章 书店管理系统(教学视频:56分钟) 791   22.1 实例分析 791   22.2 系统设计 792   22.2.1 结构分析 792   22.2.2 搭建环境 792   22.2.3 创建目录 793   22.3 数据库设计 793   22.4 公用模块设计 795   22.4.1 data包 795   22.4.2 util包 798   22.5 用户登录模块 800   22.6 系统主界面 802   22.7 基础维护模块 804   22.7.1 图书维护 804   22.7.2 用户维护 811   22.8 借还管理模块 818   22.8.1 借书 818   22.8.2 还书 821   22.9 查询管理模块 824   22.9.1 图书查询 824   22.9.2 用户查询 826   22.10 系统管理模块 829   22.11 小结 831

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值