求 入门或基础的java英文版书籍

求 入门或基础的java英文版书籍,第1张

Java 编程初步 傻瓜书

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159167

零基础学Java电子教程 附随书光盘

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181032

数据结与算法 Java语言版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160250

精通JBuilder 2005 中文版 高清PDF+随书光盘

http://bbs.topsage.com/dispbbs_121_172861_1.html

程序天下:J2EE整合详解与典型案例 电子教程+随书光盘

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181884

JSF JavaServer Faces in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160229

Spring in Action (第二版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146170

Manning jQuery in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174769

Spring In Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174107

AspectJ in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174106

Hibernate In Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174105

Struts in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174005

Lucene in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173991

Wrox出版 Beginning Spring Framework 2

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175714

Java Extreme Programming Cookbook

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174729

Java Programming Cookbook

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=173667

Beginning Java Objects

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174685

Building Java Enterprise App

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174684

Ant: The Definitive Guide

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174683

Better Faster Lighter Java

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174681

Hibernate Reference 3.1

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174674

Pragmatic Version Control using CVS

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174479

Pragmatic Project Automation

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174476

jQuery Reference Guide

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174411

Java 2 核心技术 卷1&卷2 CHM版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174123

Wrox Professional Java JDK 6 Edition

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163451

Java 2 宝典

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159154

侯捷java编程思想 PDF中文版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163902

Learning Java (第三版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146869

The Java Language Specification

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176082

Beginning Java Programming for Dummies 第二版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163923

Java 2 核心编程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146174

Java How to Program (第六版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146371

Java All-In-One案头参考傻瓜书 (第二版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152871

21天自学 Java 6 (2007年5月更新出版) PDF

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159315

Java咖啡馆

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151447

Thinking in Java(第四版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152053

深入学习JFC SWING - Java基础类组件集

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152049

J2EE全实例教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158057

Java信息系统设计与开发实例(第二版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151993

Java优化编程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151994

Effective Java

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175258

Java信息系统设计与开发实例(第二版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151993

Tricks of the Java Programming

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159305

Wrox Professional Java Native Interfaces with SWT JFace

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159290

Java Swing 第二版 PDF文字版 O'Relliy出版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159158

O'Reilly - Java Database Programming with JDBC

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159292

JDBC与Java数据库程序设计

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151448

Learning JQurey (2007年7月最新出版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159652

J2EE with BEA WebLogic Server

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176088

Pragmatic Unit Testing in Java with JUnit

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176084

Wiley出版 J2EE 1.4 Bible

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=176080

J2EE设计开发编程指南

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159288

Java Web Services简明教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159159

O'Reilly Java and XML (第二版PDF)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146231

O'Reilly Java and XML (第三版PDF)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=167584

Java技术XML高级编程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=147800

Java Reflection in Action [MANNING]

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=178017

Java Puzzler (Java 解惑)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=178016

Java Database Best Practices

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=178015

Struts: The Complete Reference

http://bbs.topsage.com/dispbbs.asp?boardID=123&ID=178025

Log4j The Complete Manual

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=178023

Programming for the Java Virtual Machine

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=178021

Expert One-on-One J2EE Design and Development

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160652

Expert One-on-One J2EE Development without EJB

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160653

JBoss - A Developer's Notebook

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146179

The Java Programming Language (第四版)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=147095

Professional Java Development with the Spring Framework

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159303

Core Java Server Faces 第二版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=145549

精通Enterprise JavaBeans

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146018

Enterprise JavaBeans EJB 第四版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159166

J2EE应用与BEA WebLogic Server (第二版PDF)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146227

O'Reilly Java Web Services

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=146377

Ant权威指南

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=148383

Ajax和Java框架高级编程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=148371

Java Web Services简明教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159159

Cross-Platform Web Services Using C# and Java

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160472

O'Reilly Ajax on Java

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160600

O'Reilly Java and XSLT

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=149585

O'Reilly Java and XML Binding

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=149583

O'Reilly Java and SOAP

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=149581

Design Patterns Java Companion

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=163920

J2EE Java黑客大曝光 开发安全的Java应用程序

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151446

J2ME API 速查手册

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158248

精通J2ME无线编程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152047

J2ME开发大全

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151987

Beginning J2ME 从入门到精通 第三版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=184149

Beginning JBoss Seam从入门到精通

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=183607

Beginning Hibernate 从入门到精通

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=183602

Java网页开发的艺术

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151991

Java编程高手

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151990

Java 5.0 Tiger程序高手秘笈

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151989

Java2网络协议技术内幕(附源码)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151988

Using Enterprise JavaBeans 2

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166051

Java技术实用教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158244

企业级Java安全性(构建安全的J2EE应用)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=152048

Java语言集成开发环境Eclipse中文教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158237

NetBeans IDE 5.5 企业版高级开发教程

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=159653

Using Enterprise JavaBeans 2

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166051

Borland JBuilder Developer's Guide

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=166294

Eclipse [O'Reilly]

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=175257

Eclipse精要与高级开发技术

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=151986

Code Generation in Action

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=174722

Java 6 3D游戏开发

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=160251

Java视频教程 孙鑫Java无难事 (全12CD)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=154630

上海交大 Java初级编程基础 共25讲下载 avi格式

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=185162

张孝祥Java课堂系列之 Tomcat入门(七讲 swf)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181503

张孝祥Java课堂系列之 Servlet开发入门 (九讲 swf)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181502

张孝祥Java课堂系列之 HTTP协议详解(四讲 swf)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181500

张孝祥Java课堂系列之 Web XML基础(四讲 swf)

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181499

J2EE视频教程 中间件技术 浙江大学胡晓军 全24讲完整版下载

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181597

EJB技术及应用视频教程 东北大学 全26讲完整版 RMVB格式

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181583

J2EE开发IDE Eclipse视频教程 全9CD 完整版

http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158075

Java视频教程 即学即会java

http://bbs.topsage.com/dispbbs_121_156264_6.html

***Part I***

It is assumed that "today" is excluded from "within the next 7 days".

It is assumed that birthday is stored as Date type with value of 0 for hours,

minutes and seconds.

It is assumed that a meeting can be hold right after previous one finished.

In other words, Meeting A, with finishing time of 10:00:00,

and Meeting B, with a starting time of 10:00:00,

are not considered as overlapped.

It is assumed that meeting with a duration of 0 seconds is valid and can cause

Overlapping.

It is assumed that this schedule system may have further update with more types of

events.

It is assumed that every type of events will have at least a label with String

type and a time with Date type.

It is assumed that different types of events should be handled separately.

***Part II***

See attached image.

***Part III***

ScheduleImpl.java

import java.text.SimpleDateFormat

import java.util.ArrayList

import java.util.Calendar

import java.util.Date

public class ScheduleImpl implements Schedule {

private ArrayList<Meeting> meetings

private ArrayList<Birthday> birthdays

public ScheduleImpl () {

meetings = new ArrayList<Meeting>()

birthdays = new ArrayList<Birthday>()

}

@Override

public void add(Event item) {

}

@Override

public void add(int type, Event item) {

}

@Override

public void get(String label) {

}

@Override

public void get(int type, int position) {

}

@Override

public void update(String label, Event item) {

}

@Override

public void update(int type, String label, Event item) {

}

@Override

public void remove(String label) {

}

@Override

public void remove(int type, String label) {

}

@Override

public void sort() {

}

@Override

public String birthdays() {

StringBuilder result = new StringBuilder()

result.append("List of birthdays in next 7 days:")

for (int i = 0 i < birthdays.size() i++) {

Date b = birthdays.get(i).getDOB() // Birthday

Calendar t = Calendar.getInstance() // Today

Calendar n = Calendar.getInstance()

n.add(Calendar.WEEK_OF_YEAR, 1) // Next 7 days

if (b.compareTo(t.getTime()) > 0 && b.compareTo(n.getTime()) < 0) {

result.append(birthdays.get(i).toString())

}

}

return result.toString()

}

@Override

public boolean overlapping() {

for (int i = 0 i < meetings.size() - 1 i++) {

for (int j = i + 1 j < meetings.size() j++) {

Date s1 = meetings.get(i).getStartTime()

Date s2 = meetings.get(j).getStartTime()

Date f1 = meetings.get(i).getFinishTime()

if (s1.compareTo(s1) <= 0 && f1.compareTo(s2) > 0) {

return true

}

}

}

return false

}

}

interface Schedule {

public static final String DATE_FORMAT = "EEE dd-MM-yyyy"

public static final String TIME_FORMAT = "HH:mm:ss"

public static final int MEETING = 0

public static final int BIRTHDAY = 1

void add(Event item)

void add(int type, Event item)

void get(String label)

void get(int type, int position)

void update(String label, Event item)

void update(int type, String label, Event item)

void remove(String label)

void remove(int type, String label)

void sort()

String birthdays()

boolean overlapping()

}

class Event {

protected static final SimpleDateFormat DATE_FORMATTER =

new SimpleDateFormat(Schedule.DATE_FORMAT)

protected static final SimpleDateFormat TIME_FORMATTER =

new SimpleDateFormat(Schedule.TIME_FORMAT)

private String label

private Date Date

protected String getLabel() {

return label

}

protected void setLabel(String label) {

this.label = label

}

protected Date getDate() {

return Date

}

protected void setDate(Date date) {

this.Date = date

}

}

class Birthday extends Event {

public Birthday (String name, Date dateOfBirth) {

setLabel(name)

Calendar dob = Calendar.getInstance()

dob.setTime(dateOfBirth)

dob.set(Calendar.HOUR, 0)

dob.set(Calendar.MINUTE, 0)

dob.set(Calendar.SECOND, 0)

setDate(dob.getTime())

}

public String getName() {

return getLabel()

}

public Date getDOB() {

return getDate()

}

@Override

public String toString() {

StringBuilder result = new StringBuilder()

result.append(getName())

for (int i = getName().length() / 8 i < 4 i++) {

result.append("\t")

}

result.append("- ")

result.append(DATE_FORMATTER.format(getDOB()))

return result.toString()

}

}

class Meeting extends Event {

private Date finishTime

private String location

public Meeting (String description, Date startTime, Date finishTime,

String location) {

setLabel(description)

setDate(startTime)

this.finishTime = finishTime

this.location = location

}

public String getDescription() {

return getLabel()

}

public void setDescription(String description) {

setLabel(description)

}

public Date getStartTime() {

return getDate()

}

public void setStartTime(Date startTime) {

setDate(startTime)

}

public Date getFinishTime() {

return finishTime

}

public void setFinishTime(Date finishTime) {

this.finishTime = finishTime

}

public String getLocation() {

return location

}

public void setLocation(String location) {

this.location = location

}

@Override

public String toString() {

StringBuilder result = new StringBuilder()

result.append(getDescription())

result.append(":\n")

result.append(DATE_FORMATTER.format(getStartTime()))

result.append(" from ")

result.append(TIME_FORMATTER.format(getStartTime()))

result.append(" to ")

result.append(TIME_FORMATTER.format(getFinishTime()))

result.append("\nAt: ")

result.append(getLocation())

return result.toString()

}

}

***Part IV***

Test case 1: separated meetings

– expected return : False

e.g. A. 09:00 – 10:00 B. 11:00 – 12:00

Test case 2: consequent meetings

– expected return : False

e.g. A. 09:00 – 10:00 B. 10:00 – 11:00

Test case 3: partially overlapped meetings

– expected return : True

e.g. A. 09:00 – 10:00 B. 10:30 – 11:30

Test case 4: partially overlapped meetings (same start time)

– expected return : True

e.g. A. 09:00 – 10:00 B. 09:00 – 09:30

Test case 5: entirely overlapped meetings

– expected return : True

e.g. A. 09:00 – 12:00 B. 10:00 – 11:00

Test case 6: entirely overlapped meetings (same start time)

– expected return : True

e.g. A. 09:00 – 12:00 B. 09:00 – 10:00

Test case 7: exactly overlapped meetings

– expected return : True

e.g. A. 09:00 – 10:00 B. 09:00 – 10:00

***Part V***

All running times listed below are for average case.

running time of methods:

birthdays() O(n)

overlapping() O(n^2)

Recommendations on improvement:

Using sorted data (sort birthdays by date of birth, sort meetings by start time)

which takes O(n log n) to O(n^2) to sort (only needed once).

After sorting and implementing modified CRUD functions,

although create/delete functions will take O(log n) instead of O(1) to finish,

read/update functions will take O(log n) instead of O(n) to finish.

Additionally, birthdays() will take O(log n) instead of O(n) and

overlapping() will take O(n) instead of O(n^2).

In conclusion, applying these recommended improvements would significantly boost on overall performance, especially while dealing with large size datasets.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11085501.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存