Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

69 changes: 69 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions src/main/java/lessons/lesson08/book/Book.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package lessons.lesson08.book;

public class Book {
String title, author, isbn;

Book(String title, String author, String isbn) {
this.title = title;
this.author = author;
this.isbn = isbn;
}

@Override
public String toString() {
return "ISBN: " + isbn + ", Title: " + title + ", Author: " + author;
}
}
18 changes: 18 additions & 0 deletions src/main/java/lessons/lesson08/book/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package lessons.lesson08.book;

import java.util.HashMap;
import java.util.Map;

public class Main {
public static void main(String[] args) {
Map<String, Book> books = new HashMap<>();
books.put("978-1-23456-789-7", new Book("Effective Java", "Joshua Bloch", "978-1-23456-789-7"));
books.put("978-0-98765-432-1", new Book("Clean Code", "Robert C. Martin", "978-0-98765-432-1"));
books.put("978-0-12345-678-9", new Book("Java: The Complete Reference", "Herbert Schildt", "978-0-12345-678-9"));

System.out.println("Books list:");
for (Book b : books.values()) {
System.out.println(b);
}
}
}
38 changes: 38 additions & 0 deletions src/main/java/lessons/lesson08/numbers/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package lessons.lesson08.numbers;

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Input numbers by tab (example: 1 2 3 45 5)");
System.out.print("Numbers: ");
String line = sc.nextLine().trim();
if (line.isEmpty()) {
System.out.println("Exit.");
sc.close();
return;
}
String[] tokens = line.split("\\s+");
Set<Integer> unique = new LinkedHashSet<>();
for (String t : tokens) {
try {
unique.add(Integer.parseInt(t));
} catch (NumberFormatException ignored) {
}
}
if (unique.isEmpty()) {
System.out.println("No valid numbers found");
} else {
System.out.print("Unique numbers: ");
boolean first = true;
for (int n : unique) {
if (!first) System.out.print(" ");
System.out.print(n);
first = false;
}
System.out.println();
}
sc.close();
}
}
23 changes: 23 additions & 0 deletions src/main/java/lessons/lesson08/queue/ElectronicQueue.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package lessons.lesson08.queue;

import java.util.ArrayDeque;
import java.util.Queue;

public class ElectronicQueue {
private Queue<User> queue = new ArrayDeque<>();
private int nextTicket = 1;

public User register(String name) {
User u = new User(name, nextTicket++);
queue.add(u);
return u;
}

public User processNext() {
return queue.poll();
}

public User peek() {
return queue.peek();
}
}
62 changes: 62 additions & 0 deletions src/main/java/lessons/lesson08/queue/QueeMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package lessons.lesson08.queue;

import java.util.*;

public class QueeMain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ElectronicQueue eq = new ElectronicQueue();

System.out.println("Commands: register \"name\" | process | peek | exit");

while (true) {
System.out.print("Operation: ");
String line = sc.nextLine();
if (line == null) break;
line = line.trim();
if (line.isEmpty()) continue;

// выход
if (line.equalsIgnoreCase("exit")) {
System.out.println("Exit.");
break;
}

// регистрация
if (line.toLowerCase().startsWith("register")) {
String name = "";
if (line.length() > 8) name = line.substring(8).trim();
// спрашиваем имя, если через команду не было написано
if (name.isEmpty()) {
System.out.print("Name: ");
name = sc.nextLine().trim();
}
if (name.isEmpty()) {
System.out.println("Name is empty. Cancel");
continue;
}
User u = eq.register(name);
System.out.println("Ticket " + u.ticket + " assigned to " + u.name);
continue;
}

if (line.equalsIgnoreCase("process")) {
User u = eq.processNext();
if (u == null) System.out.println("Queue is empty");
else System.out.println("Processing " + u);
continue;
}

if (line.equalsIgnoreCase("peek")) {
User u = eq.peek();
if (u == null) System.out.println("Queue is empty");
else System.out.println("Next: " + u);
continue;
}
// неизвестная команда
System.out.println("Unknown. Available: register, process, peek, exit");
}
sc.close();
}
}

16 changes: 16 additions & 0 deletions src/main/java/lessons/lesson08/queue/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package lessons.lesson08.queue;

public class User {
String name;
int ticket;

User(String name, int ticket) {
this.name = name;
this.ticket = ticket;
}

@Override
public String toString() {
return "Ticket " + ticket + ": " + name;
}
}