Skip to content

Commit 00b4d30

Browse files
Added code from exercises and demos.
1 parent 7de78c2 commit 00b4d30

File tree

164 files changed

+6248
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

164 files changed

+6248
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import java.util.Date;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) throws InterruptedException {
6+
Thread.sleep(20000);
7+
System.out.println("starting the work...");
8+
PrimeNumbers primeNumbers = new PrimeNumbers();
9+
Integer max = Integer.parseInt(args[0]);
10+
primeNumbers.generateNumbers(max);
11+
}
12+
13+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
4+
public class PrimeNumbers {
5+
6+
private List<Integer> primes;
7+
8+
private Boolean isPrime(Integer testNumber) {
9+
for (int i = 2; i < testNumber; i++) {
10+
if (testNumber % i == 0) return false;
11+
}
12+
return true;
13+
}
14+
15+
private Integer getNextPrimeAbove(Integer previous) {
16+
Integer testNumber = previous + 1;
17+
while (!isPrime(testNumber)) {
18+
testNumber++;
19+
}
20+
return testNumber;
21+
}
22+
23+
public void generateNumbers (Integer max) {
24+
primes = new ArrayList<Integer>();
25+
primes.add(2);
26+
27+
Integer next = 2;
28+
while (primes.size() <= max) {
29+
next = getNextPrimeAbove(next);
30+
primes.add(next);
31+
}
32+
//System.out.println(primes);
33+
}
34+
35+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import java.util.Date;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) throws InterruptedException {
6+
Date start = new Date();
7+
PrimeNumbers primeNumbers = new PrimeNumbers();
8+
Integer max = Integer.parseInt(args[0]);
9+
primeNumbers.generateNumbers(max);
10+
Date end = new Date();
11+
System.out.println("Elapsed time was " + (end.getTime() - start.getTime()) +" ms.");
12+
}
13+
14+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
4+
public class PrimeNumbers {
5+
6+
private List<Integer> primes;
7+
8+
private Boolean isPrime(Integer testNumber) {
9+
for (int i = 2; i < testNumber; i++) {
10+
if (testNumber % i == 0) return false;
11+
}
12+
return true;
13+
}
14+
15+
private Integer getNextPrimeAbove(Integer previous) {
16+
Integer testNumber = previous + 1;
17+
while (!isPrime(testNumber)) {
18+
testNumber++;
19+
}
20+
return testNumber;
21+
}
22+
23+
public void generateNumbers (Integer max) {
24+
primes = new ArrayList<Integer>();
25+
primes.add(2);
26+
27+
Integer next = 2;
28+
while (primes.size() <= max) {
29+
next = getNextPrimeAbove(next);
30+
primes.add(next);
31+
}
32+
//System.out.println(primes);
33+
}
34+
35+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
public class Main {
3+
4+
5+
public static void calculate(int calcValue) {
6+
calcValue = calcValue * 100;
7+
}
8+
9+
public static void main(String[] args) {
10+
int localValue = 5;
11+
calculate(localValue);
12+
System.out.println(localValue);
13+
14+
}
15+
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.virtualpairprogrammers.escapingreferences.customers;
2+
3+
import java.util.Collections;
4+
import java.util.HashMap;
5+
import java.util.Iterator;
6+
import java.util.Map;
7+
8+
import com.virtualpairprogrammers.escapingreferences.customers.customerImplementation.Customer;
9+
10+
public class CustomerRecords implements Iterable<Customer> {
11+
private Map<String, Customer> records;
12+
13+
public CustomerRecords() {
14+
this.records = new HashMap<String, Customer>();
15+
}
16+
17+
public void addCustomer(String name) {
18+
this.records.put(name, new Customer(name));
19+
}
20+
21+
public Map<String, Customer> getCustomers() {
22+
return Map.copyOf(records);
23+
//return Collections.unmodifiableMap(records);
24+
}
25+
26+
@Override
27+
public Iterator<Customer> iterator() {
28+
return records.values().iterator();
29+
}
30+
31+
public ReadonlyCustomer find(String name) {
32+
return new Customer(records.get(name));
33+
}
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.virtualpairprogrammers.escapingreferences.customers;
2+
3+
public interface ReadonlyCustomer {
4+
5+
String getName();
6+
7+
String toString();
8+
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.virtualpairprogrammers.escapingreferences.customers.customerImplementation;
2+
import com.virtualpairprogrammers.escapingreferences.customers.ReadonlyCustomer;
3+
4+
public class Customer implements ReadonlyCustomer {
5+
private String name;
6+
7+
@Override
8+
public String getName() {
9+
return name;
10+
}
11+
12+
public void setName(String name) {
13+
this.name = name;
14+
}
15+
16+
public Customer(String name) {
17+
this.name = name;
18+
}
19+
20+
public Customer(ReadonlyCustomer c) {
21+
this.name = c.getName();
22+
}
23+
24+
@Override
25+
public String toString() {
26+
return name;
27+
}
28+
29+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
module EscapingReferences {
3+
exports com.virtualpairprogrammers.escapingreferences.customers;
4+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package main;
2+
3+
import com.virtualpairprogrammers.escapingreferences.customers.CustomerRecords;
4+
import com.virtualpairprogrammers.escapingreferences.customers.ReadonlyCustomer;
5+
6+
public class Main {
7+
8+
public static void main(String[] args) {
9+
CustomerRecords records = new CustomerRecords();
10+
11+
records.addCustomer("John");
12+
records.addCustomer("Simon");
13+
14+
for (ReadonlyCustomer c : records) {
15+
System.out.println(c);
16+
}
17+
18+
//Customer c = (Customer) records.find("John");
19+
20+
21+
}
22+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
module EscapingReferencesClient {
3+
requires EscapingReferences;
4+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package main;
2+
3+
public class Book implements ReadonlyBook {
4+
private int id;
5+
private String title;
6+
private String author;
7+
private Price price;
8+
9+
@Override
10+
public int getId() {
11+
return id;
12+
}
13+
14+
@Override
15+
public String getTitle() {
16+
return title;
17+
}
18+
19+
@Override
20+
public String getAuthor() {
21+
return author;
22+
}
23+
24+
public Book(int id, String title, String author, Double price) {
25+
this.id = id;
26+
this.title = title;
27+
this.author = author;
28+
this.price = new Price(price);
29+
}
30+
31+
@Override
32+
public String toString() {
33+
return title + " by " + author;
34+
}
35+
36+
@Override
37+
public Price getPrice() {
38+
return this.price;
39+
}
40+
41+
public void setPrice(Double price) {
42+
this.price = new Price(price);
43+
}
44+
45+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package main;
2+
import java.util.ArrayList;
3+
import java.util.HashMap;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.function.Predicate;
7+
import java.util.stream.Collectors;
8+
import java.util.stream.Stream;
9+
10+
public class BookCollection {
11+
12+
private List<Book> books;
13+
14+
public BookCollection() {
15+
books = new ArrayList<Book>();
16+
books.add(new Book(1,"Don Quixote","Miguel De Cervantes",3.99));
17+
books.add(new Book(2,"Pilgrim's Progress","John Bunyan",4.45));
18+
books.add(new Book(3,"Robinson Crusoe","Daniel Defoe",3.99));
19+
books.add(new Book(4,"Gulliver's Travels","Jonathan Swift",7.60));
20+
books.add(new Book(5,"Tom Jones","Henry Fielding",9.99));
21+
books.add(new Book(6,"Clarissa","Samuel Richardson",4.45));
22+
books.add(new Book(7,"Dangerous Liaisons","Pierre Choderlos De Laclos",11.50));
23+
books.add(new Book(8,"Emma","Jane Austen",3.99));
24+
books.add(new Book(9,"Frankenstein","Mary Shelley",7.60));
25+
books.add(new Book(10,"The Count of Monte Christo","Alexandre Dumas",3.99));
26+
}
27+
28+
public ReadonlyBook findBookByName(String title) {
29+
for (Book book : books) {
30+
if (book.getTitle().equals(title)) {
31+
return book;
32+
}
33+
}
34+
return null;
35+
}
36+
37+
public void printAllBooks() {
38+
for (ReadonlyBook book : books) {
39+
System.out.println(book.getTitle() + ": " + book.getPrice());
40+
}
41+
}
42+
43+
}
44+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package main;
2+
import java.util.List;
3+
import java.util.Map;
4+
import java.util.function.Predicate;
5+
6+
7+
public class Main {
8+
9+
public static void main(String[] args) {
10+
11+
System.out.println("---START OF PROBLEM 1---");
12+
//Print out the current exchange rates
13+
System.out.println("The current exchange rates are USD 1 = ");
14+
Price price = new Price(1.0);
15+
price.getRates().forEach( (k,v) -> System.out.println(k + " " + v));
16+
17+
//PROBLEM 1 - can we change one of the rates?
18+
//price.getRates().put("USD", 2d);
19+
System.out.println("The current exchange rates are USD 1 = ");
20+
price.getRates().forEach( (k,v) -> System.out.println(k + " " + v));
21+
22+
System.out.println("---END OF PROBLEM 1---");
23+
24+
System.out.println("---START OF PROBLEM 2---");
25+
26+
//Get all the books printed out
27+
BookCollection bc = new BookCollection();
28+
bc.printAllBooks();
29+
30+
//PROBLEM 2 - can we change a book?
31+
ReadonlyBook emma = bc.findBookByName("Emma");
32+
//emma.setPrice(999d);
33+
bc.printAllBooks();
34+
35+
System.out.println("---END OF PROBLEM 2---");
36+
37+
System.out.println("---START OF PROBLEM 3---");
38+
//Print out the price of the book Tom Jones
39+
ReadonlyBook book = bc.findBookByName("Tom Jones");
40+
System.out.println("Tom Jones costs USD " + book.getPrice());
41+
System.out.println("Tom Jones costs EUR " + book.getPrice().convert("EUR"));
42+
System.out.println("Tom Jones costs GBP " + book.getPrice().convert("GBP"));
43+
System.out.println("---END OF PROBLEM 3---");
44+
45+
46+
}
47+
}

0 commit comments

Comments
 (0)