From d8e5d6e769bf1b0453f3184bb2d3c1f38f995550 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 28 Mar 2018 23:08:12 +1100 Subject: [PATCH 01/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_02/{Main.java => MainClass.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ru/geekbrains/java2/lesson_02/{Main.java => MainClass.java} (100%) diff --git a/src/ru/geekbrains/java2/lesson_02/Main.java b/src/ru/geekbrains/java2/lesson_02/MainClass.java similarity index 100% rename from src/ru/geekbrains/java2/lesson_02/Main.java rename to src/ru/geekbrains/java2/lesson_02/MainClass.java From e106e8313763328a8c5c4e5f60d4c9f8ce422204 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 28 Mar 2018 23:10:01 +1100 Subject: [PATCH 02/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_02/MainClass.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/ru/geekbrains/java2/lesson_02/MainClass.java b/src/ru/geekbrains/java2/lesson_02/MainClass.java index 5e672bd..ffd0008 100644 --- a/src/ru/geekbrains/java2/lesson_02/MainClass.java +++ b/src/ru/geekbrains/java2/lesson_02/MainClass.java @@ -1,4 +1,30 @@ package ru.geekbrains.java2.lesson_02; -public class Main { +import javafx.scene.media.SubtitleTrack; + +public class MainClass { + public static void main(String[] args) { + a(); + } + + static void a() { + b(); + } + + static void b() { + c(); + } + + static void c() { + System.out.println("START"); + try { + int x = 10 / 0; + } catch (ArithmeticException e) { + System.out.println("AE"); + return; + } finally { + System.out.println("FINALLY"); + } + System.out.println("END"); + } } From 547bdaa611eb9ac547bbd72880f7afd9bc3b4f76 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 28 Mar 2018 23:10:40 +1100 Subject: [PATCH 03/41] =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=B0=D1=88=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_02/Homework.java | 59 +++++++++++++++++++ .../java2/lesson_02/MyArrayDataException.java | 7 +++ .../java2/lesson_02/MyArraySizeException.java | 7 +++ 3 files changed, 73 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_02/Homework.java create mode 100644 src/ru/geekbrains/java2/lesson_02/MyArrayDataException.java create mode 100644 src/ru/geekbrains/java2/lesson_02/MyArraySizeException.java diff --git a/src/ru/geekbrains/java2/lesson_02/Homework.java b/src/ru/geekbrains/java2/lesson_02/Homework.java new file mode 100644 index 0000000..89e02ac --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_02/Homework.java @@ -0,0 +1,59 @@ +// https://github.com/Stormcoder74/Java2.git +package ru.geekbrains.java2.lesson_02; + +public class Homework { + public static final int SIZE = 4; + + public static void main(String[] args) { + try { + int testResult = testException(new String[][]{ + {"6", "2", "12", "5"}, + {"3", "9", "4", "21"}, + {"4", "s", "7", "8"}, + {"1", "0", "3", "9"}}); + System.out.println("testResult = " + testResult); + } catch (MyArraySizeException | MyArrayDataException e) { + e.printStackTrace(); + } + + try { + int testResult = testException(new String[][]{ + {"6", "2", "12", "5"}, + {"3", "9", "4"}, + {"4", "5", "7", "8"}, + {"1", "0"}}); + System.out.println("testResult = " + testResult); + } catch (MyArraySizeException | MyArrayDataException e) { + e.printStackTrace(); + } + + try { + int testResult = testException(new String[][]{ + {"6", "2", "12", "5"}, + {"3", "9", "4", "21"}, + {"4", "5", "7", "8"}, + {"1", "0", "3", "9"}}); + System.out.println("testResult = " + testResult); + } catch (MyArraySizeException | MyArrayDataException e) { + e.printStackTrace(); + } + } + + public static int testException(String[][] arr) throws MyArraySizeException { + int result = 0; + if (arr.length != SIZE) throw new MyArraySizeException(SIZE, SIZE); + else for (int i = 0; i < SIZE; i++) { + if (arr[i].length != SIZE) throw new MyArraySizeException(SIZE, SIZE); + else for (int j = 0; j < SIZE; j++) { + try { + result += Integer.parseInt(arr[i][j]); + } catch (NumberFormatException e) { + throw new MyArrayDataException(i, j); + } + } + } + return result; + } + + +} diff --git a/src/ru/geekbrains/java2/lesson_02/MyArrayDataException.java b/src/ru/geekbrains/java2/lesson_02/MyArrayDataException.java new file mode 100644 index 0000000..c19577a --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_02/MyArrayDataException.java @@ -0,0 +1,7 @@ +package ru.geekbrains.java2.lesson_02; + +public class MyArrayDataException extends NumberFormatException { + public MyArrayDataException(int size1, int size2) { + super("Невозможно преобразовать в число строку в ячейке [" + size1 + "][" + size2 + "]."); + } +} diff --git a/src/ru/geekbrains/java2/lesson_02/MyArraySizeException.java b/src/ru/geekbrains/java2/lesson_02/MyArraySizeException.java new file mode 100644 index 0000000..915fa42 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_02/MyArraySizeException.java @@ -0,0 +1,7 @@ +package ru.geekbrains.java2.lesson_02; + +public class MyArraySizeException extends Exception { + MyArraySizeException(int size1, int size2) { + super("Размерность массива отличается от [" + size1 + "][" + size2 + "]."); + } +} From 5893d8df46c25d8da03a676d08339c738b0040ad Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 2 Apr 2018 21:41:08 +1100 Subject: [PATCH 04/41] =?UTF-8?q?=D0=BC=D0=B5=D0=BB=D0=BA=D0=B8=D0=B9=20?= =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_02/Homework.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/ru/geekbrains/java2/lesson_02/Homework.java b/src/ru/geekbrains/java2/lesson_02/Homework.java index 89e02ac..6785c4e 100644 --- a/src/ru/geekbrains/java2/lesson_02/Homework.java +++ b/src/ru/geekbrains/java2/lesson_02/Homework.java @@ -13,7 +13,8 @@ public static void main(String[] args) { {"1", "0", "3", "9"}}); System.out.println("testResult = " + testResult); } catch (MyArraySizeException | MyArrayDataException e) { - e.printStackTrace(); + System.err.println(e.getMessage()); + //e.printStackTrace(); } try { @@ -24,7 +25,8 @@ public static void main(String[] args) { {"1", "0"}}); System.out.println("testResult = " + testResult); } catch (MyArraySizeException | MyArrayDataException e) { - e.printStackTrace(); + System.err.println(e.getMessage()); + //e.printStackTrace(); } try { @@ -35,7 +37,8 @@ public static void main(String[] args) { {"1", "0", "3", "9"}}); System.out.println("testResult = " + testResult); } catch (MyArraySizeException | MyArrayDataException e) { - e.printStackTrace(); + System.err.println(e.getMessage()); + //e.printStackTrace(); } } @@ -44,7 +47,7 @@ public static int testException(String[][] arr) throws MyArraySizeException { if (arr.length != SIZE) throw new MyArraySizeException(SIZE, SIZE); else for (int i = 0; i < SIZE; i++) { if (arr[i].length != SIZE) throw new MyArraySizeException(SIZE, SIZE); - else for (int j = 0; j < SIZE; j++) { + for (int j = 0; j < SIZE; j++) { try { result += Integer.parseInt(arr[i][j]); } catch (NumberFormatException e) { From 57e5f4f0f33b3fd00a6c8d0fefaec00ca6913e3d Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 2 Apr 2018 21:44:51 +1100 Subject: [PATCH 05/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_03/ClassWorkArrList.java | 66 +++++++++++++++++++ .../java2/lesson_03/ClassWorkBox.java | 34 ++++++++++ .../java2/lesson_03/ClassWorkIterator.java | 40 +++++++++++ .../java2/lesson_03/ClassWorkMap.java | 53 +++++++++++++++ .../java2/lesson_03/ClassWorkSet.java | 39 +++++++++++ 5 files changed, 232 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java create mode 100644 src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java create mode 100644 src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java create mode 100644 src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java create mode 100644 src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java b/src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java new file mode 100644 index 0000000..c62417e --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java @@ -0,0 +1,66 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class ClassWorkArrList { + public static void main(String[] args) { + List list = new ArrayList<>(Arrays.asList("A", "@", "Core", "Java", "Home")); + + list.add("Hello"); + list.remove("@"); + list.remove(2); + + System.out.println(list); + + list.set(2, "Фффигасе"); + + System.out.println(list.get(2)); + System.out.println(); + + ArrayList intList = new ArrayList<>(); + intList.add(4); + intList.add(3); + intList.add(2); + intList.add(1); + intList.add(0); + System.out.println(intList); + + intList.add(3, 10); + System.out.println(intList); + + intList.remove(4); + System.out.println(intList); + + intList.remove((Integer) 4); + System.out.println(intList); + System.out.println(); + + ArrayList strList = new ArrayList<>(); + strList.add("A"); + strList.add("C"); + strList.add("A"); + strList.add("A"); + strList.add("B"); + strList.add("D"); + do { + System.out.println(strList); + }while (strList.remove("A")); + +// strList.clear(); +// System.out.println(strList); + + + ArrayList strList2 = new ArrayList<>(); + strList2.add("N"); + strList2.add("K"); + strList2.add("S"); + + strList.addAll(strList2); + strList.add(1, "S"); + System.out.println(strList); + strList.removeAll(strList2); + System.out.println(strList); + } +} diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java b/src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java new file mode 100644 index 0000000..47b1543 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java @@ -0,0 +1,34 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.Arrays; +import java.util.TreeSet; + +public class ClassWorkBox implements Comparable { + private int size; + + public ClassWorkBox(int size) { + this.size = size; + } + + @Override + public String toString() { + return "Box{" + + "size=" + size + + '}'; + } + + @Override + public int compareTo(Object o) { + return ((Integer)this.size).compareTo(((ClassWorkBox)o).size); + } + + public static void main(String[] args) { + TreeSet tSet = new TreeSet<>(Arrays.asList( + new ClassWorkBox(4), + new ClassWorkBox(2), + new ClassWorkBox(8), + new ClassWorkBox(1) + )); + System.out.println(tSet); + } +} diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java b/src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java new file mode 100644 index 0000000..01b9d18 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java @@ -0,0 +1,40 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.*; + +public class ClassWorkIterator { + public static void main(String[] args) { + // ошибочная реализация + ArrayList list = new ArrayList<>(Arrays.asList(2, 2, 2, 2, 1, 0, 4, 6, 2, 2, 6)); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) == 2) list.remove(i); + } + System.out.println(list); + + // верная реализация + ArrayList list2 = new ArrayList<>(Arrays.asList(2, 2, 2, 2, 1, 0, 4, 6, 2, 2, 6)); + Iterator iter = list2.iterator(); + while (iter.hasNext()){ + if(iter.next() == 2) { + iter.remove(); + } + } + System.out.println(list2); + + // реализация на HashMap + HashMap hm = new HashMap<>(); + hm.put("a", 1); + hm.put("b", 5); + hm.put("c", 3); + hm.put("d", 8); + hm.put("e", 6); + hm.put("f", 0); + Iterator> iter2 = hm.entrySet().iterator(); + while (iter2.hasNext()){ + Map.Entry entry = iter2.next(); + System.out.println(entry.getKey() + "/" + entry.getValue()); + } + + } + +} diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java b/src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java new file mode 100644 index 0000000..aaa3713 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java @@ -0,0 +1,53 @@ +package ru.geekbrains.java2.lesson_03; +// video 2:10 +import java.util.ArrayList; +import java.util.HashMap; + +public class ClassWorkMap { + public static void main(String[] args) { + HashMap capitalCities = new HashMap<>(); + capitalCities.put("France", "Paris"); + capitalCities.put("Russia", "Moscow"); + capitalCities.put("England", "Lonon"); + + System.out.println(capitalCities); + System.out.println(capitalCities.get("France")); + System.out.println(capitalCities.get("Russia")); + + System.out.println(capitalCities.getOrDefault("England", "Нету нифига")); + System.out.println(capitalCities.getOrDefault("Finland", "Нету нифига")); + System.out.println(); + + long time; + + time = System.currentTimeMillis(); + ArrayList strAL = new ArrayList<>(1_000_000); + for (int i = 0; i < 1_000_000; i++) { + strAL.add("Entry #" + i); + } + System.out.print("Заполнение ArrayList: "); + System.out.println(System.currentTimeMillis() - time); + + time = System.currentTimeMillis(); + HashMap strIntHM = new HashMap<>(); + for (int i = 0; i < 1_000_000; i++) { + strIntHM.put("Entry #" + i, i); + } + System.out.print("Заполнение HashMap: "); + System.out.println(System.currentTimeMillis() - time); + + time = System.currentTimeMillis(); + for (int i = 0; i < 1000; i++) { + strAL.contains("Entry #522343"); + } + System.out.print("Поиск в ArrayList: "); + System.out.println(System.currentTimeMillis() - time); + + time = System.currentTimeMillis(); + for (int i = 0; i < 1000; i++) { + strIntHM.containsKey("Entry #522343"); + } + System.out.print("Поиск в HashMap: "); + System.out.println(System.currentTimeMillis() - time); + } +} diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java b/src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java new file mode 100644 index 0000000..cb11282 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java @@ -0,0 +1,39 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.HashSet; +import java.util.TreeSet; + +public class ClassWorkSet { + public static void main(String[] args) { + HashSet hSet = new HashSet<>(); + hSet.add("K"); + hSet.add("tSet"); + hSet.add("C"); + hSet.add("E"); + hSet.add("C"); + hSet.add("static"); + hSet.add("add"); + hSet.add("A"); + hSet.add("tSet"); + hSet.add("main"); + hSet.add("main"); + hSet.add("addddddd"); + System.out.println(hSet); + + TreeSet tSet = new TreeSet<>(); + tSet.add("K"); + tSet.add("tSet"); + tSet.add("C"); + tSet.add("E"); + tSet.add("C"); + tSet.add("static"); + tSet.add("add"); + tSet.add("A"); + tSet.add("tSet"); + tSet.add("main"); + tSet.add("main"); + tSet.add("addddddd"); + System.out.println(tSet); + + } +} From 3f8e5216494c715ae2f5c44001b1c3447baa7986 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 2 Apr 2018 23:58:24 +1100 Subject: [PATCH 06/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D1=89=D0=B5=D0=BD=D0=B0=20=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=BA=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_03/{ => Classwork}/ClassWorkArrList.java | 2 +- .../java2/lesson_03/{ => Classwork}/ClassWorkBox.java | 2 +- .../java2/lesson_03/{ => Classwork}/ClassWorkIterator.java | 2 +- .../java2/lesson_03/{ => Classwork}/ClassWorkMap.java | 2 +- .../java2/lesson_03/{ => Classwork}/ClassWorkSet.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename src/ru/geekbrains/java2/lesson_03/{ => Classwork}/ClassWorkArrList.java (97%) rename src/ru/geekbrains/java2/lesson_03/{ => Classwork}/ClassWorkBox.java (93%) rename src/ru/geekbrains/java2/lesson_03/{ => Classwork}/ClassWorkIterator.java (96%) rename src/ru/geekbrains/java2/lesson_03/{ => Classwork}/ClassWorkMap.java (97%) rename src/ru/geekbrains/java2/lesson_03/{ => Classwork}/ClassWorkSet.java (94%) diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkArrList.java similarity index 97% rename from src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java rename to src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkArrList.java index c62417e..a50261a 100644 --- a/src/ru/geekbrains/java2/lesson_03/ClassWorkArrList.java +++ b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkArrList.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_03; +package ru.geekbrains.java2.lesson_03.Classwork; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkBox.java similarity index 93% rename from src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java rename to src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkBox.java index 47b1543..4cc9c85 100644 --- a/src/ru/geekbrains/java2/lesson_03/ClassWorkBox.java +++ b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkBox.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_03; +package ru.geekbrains.java2.lesson_03.Classwork; import java.util.Arrays; import java.util.TreeSet; diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkIterator.java similarity index 96% rename from src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java rename to src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkIterator.java index 01b9d18..df6ebd7 100644 --- a/src/ru/geekbrains/java2/lesson_03/ClassWorkIterator.java +++ b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkIterator.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_03; +package ru.geekbrains.java2.lesson_03.Classwork; import java.util.*; diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkMap.java similarity index 97% rename from src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java rename to src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkMap.java index aaa3713..cfc23b6 100644 --- a/src/ru/geekbrains/java2/lesson_03/ClassWorkMap.java +++ b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkMap.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_03; +package ru.geekbrains.java2.lesson_03.Classwork; // video 2:10 import java.util.ArrayList; import java.util.HashMap; diff --git a/src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkSet.java similarity index 94% rename from src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java rename to src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkSet.java index cb11282..fb86728 100644 --- a/src/ru/geekbrains/java2/lesson_03/ClassWorkSet.java +++ b/src/ru/geekbrains/java2/lesson_03/Classwork/ClassWorkSet.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_03; +package ru.geekbrains.java2.lesson_03.Classwork; import java.util.HashSet; import java.util.TreeSet; From aa3dad8031f5cf45b06ceff52ce096a788248284 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 2 Apr 2018 23:58:57 +1100 Subject: [PATCH 07/41] =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=B0=D1=88=D0=BD?= =?UTF-8?q?=D1=8F=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=B3?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_03/Homework.java | 47 +++++++++++++++++++ .../geekbrains/java2/lesson_03/Phonebook.java | 29 ++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_03/Homework.java create mode 100644 src/ru/geekbrains/java2/lesson_03/Phonebook.java diff --git a/src/ru/geekbrains/java2/lesson_03/Homework.java b/src/ru/geekbrains/java2/lesson_03/Homework.java new file mode 100644 index 0000000..173d06f --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/Homework.java @@ -0,0 +1,47 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.*; + +public class Homework { + public static void main(String[] args) { + task1(); + System.out.println("\n"); + + Phonebook phonebook = new Phonebook(); + phonebook.add("Ясенев", "5738665"); + phonebook.add("Сидоров", "2860675"); + phonebook.add("Иванов", "23456"); + phonebook.add("Петров", "87748"); + phonebook.add("Иванов", "9563827"); + phonebook.add("Арбузов", "6749857"); + + System.out.println("Иванов: " + phonebook.get("Иванов")); + System.out.println(); + phonebook.allInfo(); + } + + private static void task1(){ + String[] words = {"Создать", "массив", "набором", "слов", + "слов", "должны", "массив", "набором", "встречаться", + "повторяющиеся", "набором", "встречаться", + "повторяющиеся","Создать", "массив", "набором", + "должны", "массив", "набором", "уникальный"}; + HashSet stringSet = new HashSet<>(Arrays.asList(words)); + System.out.println(stringSet); + + HashMap hMap = new HashMap<>(); + + Iterator iterS = stringSet.iterator(); + while (iterS.hasNext()) + hMap.put(iterS.next(), 0); + + for (String s : words) + hMap.replace(s, hMap.get(s) + 1); + + Iterator> iterM = hMap.entrySet().iterator(); + while (iterM.hasNext()){ + Map.Entry entry = iterM.next(); + System.out.printf("%s - %d раз\n", entry.getKey(), entry.getValue()); + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_03/Phonebook.java b/src/ru/geekbrains/java2/lesson_03/Phonebook.java new file mode 100644 index 0000000..256f2a0 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_03/Phonebook.java @@ -0,0 +1,29 @@ +package ru.geekbrains.java2.lesson_03; + +import java.util.Map; +import java.util.TreeMap; + +public class Phonebook { + private TreeMap directory; + + public Phonebook() { + directory = new TreeMap<>(); + } + + public void add(String family, String phone){ + if (directory.containsKey(family)){ + directory.replace(family, directory.get(family) + ", " + phone); + }else + directory.put(family, phone); + } + + public String get(String family){ + return directory.get(family); + } + + public void allInfo(){ + for (Map.Entry entry: directory.entrySet()){ + System.out.println(entry.getKey() + "/" + entry.getValue()); + } + } +} From 861cbe061b9bd888d7d4bab8759e96de2b995502 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 4 Apr 2018 21:29:25 +1100 Subject: [PATCH 08/41] =?UTF-8?q?=D0=B4=D0=B7=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=20=D1=80=D0=B0=D0=B7=D0=B1=D0=BE=D1=80=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BB=D0=B5=D0=B4.=20=D1=83=D1=80=D0=BE=D0=BA?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_03/Homework.java | 6 +----- src/ru/geekbrains/java2/lesson_03/Phonebook.java | 15 +++++++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/ru/geekbrains/java2/lesson_03/Homework.java b/src/ru/geekbrains/java2/lesson_03/Homework.java index 173d06f..24650dd 100644 --- a/src/ru/geekbrains/java2/lesson_03/Homework.java +++ b/src/ru/geekbrains/java2/lesson_03/Homework.java @@ -31,12 +31,8 @@ private static void task1(){ HashMap hMap = new HashMap<>(); - Iterator iterS = stringSet.iterator(); - while (iterS.hasNext()) - hMap.put(iterS.next(), 0); - for (String s : words) - hMap.replace(s, hMap.get(s) + 1); + hMap.put(s, hMap.getOrDefault(s, 0) + 1); Iterator> iterM = hMap.entrySet().iterator(); while (iterM.hasNext()){ diff --git a/src/ru/geekbrains/java2/lesson_03/Phonebook.java b/src/ru/geekbrains/java2/lesson_03/Phonebook.java index 256f2a0..659431d 100644 --- a/src/ru/geekbrains/java2/lesson_03/Phonebook.java +++ b/src/ru/geekbrains/java2/lesson_03/Phonebook.java @@ -1,29 +1,28 @@ package ru.geekbrains.java2.lesson_03; +import java.util.HashSet; import java.util.Map; import java.util.TreeMap; public class Phonebook { - private TreeMap directory; + private TreeMap> directory; public Phonebook() { directory = new TreeMap<>(); } public void add(String family, String phone){ - if (directory.containsKey(family)){ - directory.replace(family, directory.get(family) + ", " + phone); - }else - directory.put(family, phone); + if (!directory.containsKey(family)) directory.put(family, new HashSet<>()); + directory.get(family).add(phone); } public String get(String family){ - return directory.get(family); + return directory.get(family).toString(); } public void allInfo(){ - for (Map.Entry entry: directory.entrySet()){ - System.out.println(entry.getKey() + "/" + entry.getValue()); + for (Map.Entry> entry: directory.entrySet()){ + System.out.println(entry.getKey() + "/" + entry.getValue().toString()); } } } From f51787415cf1abb6ff38117fa74af7ecd8d31fde Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 4 Apr 2018 23:32:33 +1100 Subject: [PATCH 09/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20(=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=BA=D0=BE=D0=BD=D1=87=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=20~1/2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_04/Classwork/MainClass.java | 7 +++ .../java2/lesson_04/Classwork/MyWindow.java | 57 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_04/Classwork/MainClass.java create mode 100644 src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java diff --git a/src/ru/geekbrains/java2/lesson_04/Classwork/MainClass.java b/src/ru/geekbrains/java2/lesson_04/Classwork/MainClass.java new file mode 100644 index 0000000..61ca2cb --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/Classwork/MainClass.java @@ -0,0 +1,7 @@ +package ru.geekbrains.java2.lesson_04.Classwork; + +public class MainClass { + public static void main(String[] args) { + MyWindow window = new MyWindow(); + } +} diff --git a/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java b/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java new file mode 100644 index 0000000..2e6cf59 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java @@ -0,0 +1,57 @@ +package ru.geekbrains.java2.lesson_04.Classwork; +// video 1:37 +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class MyWindow extends JFrame { + private JTextField textField; + private JTextArea textArea; + + public MyWindow() { + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + setTitle("My application"); + setBounds(750, 250, 400, 445); + + setLayout(new FlowLayout()); + JButton button1 = new JButton("Button 1"); + JButton button2 = new JButton("Button 2"); +// button1.setPreferredSize(new Dimension(1, 40)); + add(button1); + add(button2); + + textField = new JTextField(32); + add(textField); + + + textArea = new JTextArea(20, 32); + textArea.setLineWrap(true); + textArea.setEditable(false); + JScrollPane scrollPane = new JScrollPane(textArea); + add(scrollPane); + + button1.addActionListener(e -> System.out.println("Button 1 clicked!")); + button2.addActionListener(e -> sendMsg()); + textField.addActionListener(e -> sendMsg()); + + /*for (int i=0; i<70; i++){ + JButton jb = new JButton("jb"+i); + add(jb); + jb.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + System.out.println("Clicked " + jb.getText()); + } + }); + }*/ + + setVisible(true); + } + + public void sendMsg() { + textArea.append(textField.getText() + "\n"); + textField.setText(""); + textField.grabFocus(); + } +} From ef5c6668ecc58bfe880b78208748f22c0ee0d878 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Fri, 6 Apr 2018 13:28:02 +1100 Subject: [PATCH 10/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20(=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?~4/5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lesson_04/Classwork/MyHintTextfield.java | 21 +++++++ .../java2/lesson_04/Classwork/MyWindow.java | 62 ++++++++++++------- 2 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 src/ru/geekbrains/java2/lesson_04/Classwork/MyHintTextfield.java diff --git a/src/ru/geekbrains/java2/lesson_04/Classwork/MyHintTextfield.java b/src/ru/geekbrains/java2/lesson_04/Classwork/MyHintTextfield.java new file mode 100644 index 0000000..158a1b7 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/Classwork/MyHintTextfield.java @@ -0,0 +1,21 @@ +package ru.geekbrains.java2.lesson_04.Classwork; + +import javax.swing.*; +import java.awt.*; + +public class MyHintTextfield extends JTextField { + private String hint; + + public MyHintTextfield(int columns, String hint) { + super(columns); + this.hint = hint; + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + if(getText().isEmpty() && !hasFocus()){ + g.drawString(hint, 2, 26); + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java b/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java index 2e6cf59..fd02b1a 100644 --- a/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java +++ b/src/ru/geekbrains/java2/lesson_04/Classwork/MyWindow.java @@ -1,9 +1,11 @@ package ru.geekbrains.java2.lesson_04.Classwork; -// video 1:37 +// video 2:17 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionAdapter; public class MyWindow extends JFrame { private JTextField textField; @@ -14,44 +16,62 @@ public MyWindow() { setTitle("My application"); setBounds(750, 250, 400, 445); - setLayout(new FlowLayout()); + Font arial18 = new Font("Arial", Font.BOLD, 18); + JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); -// button1.setPreferredSize(new Dimension(1, 40)); - add(button1); - add(button2); + textField = new MyHintTextfield(32, "Введите сообщение"); + textField.setFont(arial18); + textField.setPreferredSize(new Dimension(250, 40)); + JPanel upPanel = new JPanel(new BorderLayout()); - textField = new JTextField(32); - add(textField); + upPanel.add(button1, BorderLayout.WEST); + upPanel.add(textField, BorderLayout.CENTER); + upPanel.add(button2, BorderLayout.EAST); + add(upPanel, BorderLayout.NORTH); + JList membersList = new JList<>(new DefaultListModel<>()); + add(membersList, BorderLayout.EAST); + membersList.setPreferredSize(new Dimension(100, 1)); + ((DefaultListModel)membersList.getModel()).addElement("member1"); + ((DefaultListModel)membersList.getModel()).addElement("abrakadabra"); + ((DefaultListModel)membersList.getModel()).addElement("noNickName"); textArea = new JTextArea(20, 32); textArea.setLineWrap(true); textArea.setEditable(false); + textArea.setFont(arial18); JScrollPane scrollPane = new JScrollPane(textArea); - add(scrollPane); + add(scrollPane, BorderLayout.CENTER); - button1.addActionListener(e -> System.out.println("Button 1 clicked!")); + button1.addActionListener(e -> JOptionPane.showMessageDialog(null, + "Перегрев процессора", "Внимание!!!", JOptionPane.WARNING_MESSAGE)); button2.addActionListener(e -> sendMsg()); textField.addActionListener(e -> sendMsg()); - /*for (int i=0; i<70; i++){ - JButton jb = new JButton("jb"+i); - add(jb); - jb.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - System.out.println("Clicked " + jb.getText()); - } - }); - }*/ + button1.addMouseMotionListener(new MouseMotionAdapter() { + @Override + public void mouseDragged(MouseEvent e) { + super.mouseDragged(e); + button1.setBackground(new Color(0xAC2521)); + } + + @Override + public void mouseMoved(MouseEvent e) { + super.mouseMoved(e); + button1.setBackground(new Color(0x0AAC1A)); + } + }); setVisible(true); } public void sendMsg() { - textArea.append(textField.getText() + "\n"); - textField.setText(""); + String meggage = textField.getText(); + if (!meggage.isEmpty()) { + textArea.append(textField.getText() + "\n"); + textField.setText(""); + } textField.grabFocus(); } } From ed3028ee60d88ae727398b9b3b5dee37f9cdecbe Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Fri, 6 Apr 2018 13:29:15 +1100 Subject: [PATCH 11/41] =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B8=D0=BD=D0=B0?= =?UTF-8?q?=D1=8E=20=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C=20=D0=B4=D0=B7=20?= =?UTF-8?q?(=D1=81=20=D0=BD=D1=83=D0=BB=D1=8F=20=D0=BD=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=B3=D0=BB=D1=8F=D0=B4=D1=8B=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B2=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD=D1=83=D1=8E)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java | 10 ++++++++++ src/ru/geekbrains/java2/lesson_04/Homework.java | 4 ++++ 2 files changed, 14 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java create mode 100644 src/ru/geekbrains/java2/lesson_04/Homework.java diff --git a/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java b/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java new file mode 100644 index 0000000..b3d9858 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java @@ -0,0 +1,10 @@ +package ru.geekbrains.java2.lesson_04; + +import javax.swing.*; + +public class GeekChatWindow extends JFrame{ + public GeekChatWindow() { + setBounds(750, 200, 400, 700); + + } +} diff --git a/src/ru/geekbrains/java2/lesson_04/Homework.java b/src/ru/geekbrains/java2/lesson_04/Homework.java new file mode 100644 index 0000000..a4adff4 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/Homework.java @@ -0,0 +1,4 @@ +package ru.geekbrains.java2.lesson_04; + +public class Homework { +} From 47fe5a0e7c7b1815239e04e5ad7d2496a104dff8 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Fri, 6 Apr 2018 18:16:28 +1100 Subject: [PATCH 12/41] =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D0=B4=D0=B7=20?= =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_04/GeekChatWindow.java | 97 ++++++++++++++++++- .../java2/lesson_04/HintTextField.java | 23 +++++ .../geekbrains/java2/lesson_04/Homework.java | 7 ++ 3 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 src/ru/geekbrains/java2/lesson_04/HintTextField.java diff --git a/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java b/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java index b3d9858..bff321d 100644 --- a/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java +++ b/src/ru/geekbrains/java2/lesson_04/GeekChatWindow.java @@ -1,10 +1,99 @@ package ru.geekbrains.java2.lesson_04; import javax.swing.*; +import javax.swing.border.EmptyBorder; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; -public class GeekChatWindow extends JFrame{ - public GeekChatWindow() { - setBounds(750, 200, 400, 700); - +public class GeekChatWindow extends JFrame { + private HintTextField nicknameField; + private HintTextField messageField; + private JTextArea chatArea; + private JList membersList; + + public GeekChatWindow(String title) { + setTitle(title); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + setBounds(750, 150, 500, 800); + Font arial18 = new Font("Arial", Font.PLAIN, 18); + + JLabel nickLable = new JLabel("Никнейм: "); + nickLable.setFont(arial18); + + nicknameField = new HintTextField(28, "Введите ваш ник"); + nicknameField.setFont(arial18); + nicknameField.setPreferredSize(new Dimension(1, 32)); + + JPanel nickPanel = new JPanel(new BorderLayout()); + nickPanel.setBorder(new EmptyBorder(3, 5, 2, 5)); + nickPanel.add(nickLable, BorderLayout.WEST); + nickPanel.add(nicknameField, BorderLayout.CENTER); + add(nickPanel, BorderLayout.NORTH); + + messageField = new HintTextField(30, "Введите сообщение"); + messageField.setFont(arial18); + messageField.setPreferredSize(new Dimension(1, 32)); + messageField.addActionListener(new SendMessage()); + + JButton sendButton = new JButton("Отправить"); + sendButton.setFont(arial18); + sendButton.addActionListener(new SendMessage()); + + JPanel messagePanel = new JPanel(new BorderLayout()); + messagePanel.setBorder(new EmptyBorder(2, 5, 2, 5)); + messagePanel.add(messageField, BorderLayout.CENTER); + messagePanel.add(sendButton, BorderLayout.EAST); + add(messagePanel, BorderLayout.SOUTH); + + chatArea = new JTextArea(20, 30); + chatArea.setFont(arial18); + chatArea.setLineWrap(true); + chatArea.setWrapStyleWord(true); + chatArea.setEditable(false); + chatArea.append("member1: добрый вечер всем, а в чём суть Дз?\n" + + "там же есть готовый код уже, на уроке проходили, просто самому разобраться и переписать?\n\n" + + "abrakadabra : Добрый. Именно так\n\n" + + "noNickName: Вообще по заданию ДЗ окно чата выглядеть должно немного иначе.\n\n"); + + JScrollPane chatScroller = new JScrollPane(chatArea); + add(chatScroller, BorderLayout.CENTER); + + membersList = new JList<>(new DefaultListModel<>()); + membersList.setPreferredSize(new Dimension(100, 1)); + ((DefaultListModel) membersList.getModel()).addElement("member1"); + ((DefaultListModel) membersList.getModel()).addElement("abrakadabra"); + ((DefaultListModel) membersList.getModel()).addElement("noNickName"); + + JLabel membersLable = new JLabel("Участники:"); + + JPanel membersPanel = new JPanel(new BorderLayout()); + membersPanel.setBorder(new EmptyBorder(4, 4, 4, 4)); + membersPanel.add(membersLable, BorderLayout.NORTH); + membersPanel.add(membersList, BorderLayout.CENTER); + + JScrollPane memberScroller = new JScrollPane(membersPanel); + add(memberScroller, BorderLayout.EAST); + + + setVisible(true); + } + + class SendMessage implements ActionListener { + + @Override + public void actionPerformed(ActionEvent e) { + if (!messageField.getText().isEmpty()) { + String nickname = nicknameField.getText(); + + if (nickname.isEmpty()) nickname = "unknown"; + else if (!((DefaultListModel) membersList.getModel()).contains(nicknameField.getText())) + ((DefaultListModel) membersList.getModel()).addElement(nicknameField.getText()); + + chatArea.append(nickname + ": " + messageField.getText() + "\n\n"); + messageField.setText(""); + messageField.grabFocus(); + } + } } } diff --git a/src/ru/geekbrains/java2/lesson_04/HintTextField.java b/src/ru/geekbrains/java2/lesson_04/HintTextField.java new file mode 100644 index 0000000..f2fd7c1 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_04/HintTextField.java @@ -0,0 +1,23 @@ +package ru.geekbrains.java2.lesson_04; + +import javax.swing.*; +import java.awt.*; + +public class HintTextField extends JTextField { + private String hint; + + public HintTextField(int columns, String hint) { + super(30); + this.hint = hint; + + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + if (getText().isEmpty()){ + g.setColor(new Color(0x737EFF)); + g.drawString(hint, 2, 22); + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_04/Homework.java b/src/ru/geekbrains/java2/lesson_04/Homework.java index a4adff4..d15c949 100644 --- a/src/ru/geekbrains/java2/lesson_04/Homework.java +++ b/src/ru/geekbrains/java2/lesson_04/Homework.java @@ -1,4 +1,11 @@ package ru.geekbrains.java2.lesson_04; +import ru.geekbrains.java2.lesson_04.Classwork.MyWindow; + public class Homework { + public static final String version = "v 0.0.0.1"; + + public static void main(String[] args) { + new GeekChatWindow("Geek Chat " + version); + } } From fb2a3635bb399b6d2abcde89f8191e2aace41c18 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Sun, 8 Apr 2018 23:14:38 +1100 Subject: [PATCH 13/41] =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B8=D1=87=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_05/Example_SB_1.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_05/Example_SB_1.java diff --git a/src/ru/geekbrains/java2/lesson_05/Example_SB_1.java b/src/ru/geekbrains/java2/lesson_05/Example_SB_1.java new file mode 100644 index 0000000..f7f80d1 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Example_SB_1.java @@ -0,0 +1,36 @@ +package ru.geekbrains.java2.lesson_05; + +public class Example_SB_1 { + public static void main(String[] args) { + Example_SB_1 e1 = new Example_SB_1(); + System.out.println("Start"); + new Thread(() -> e1.method1()).start(); + new Thread(() -> e1.method2()).start(); + } + + public synchronized void method1() { + System.out.println("M1"); + for (int i = 0; i < 10; i++) { + System.out.println(i); + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + System.out.println("M2"); + } + + public synchronized void method2() { + System.out.println("M1"); + for (int i = 0; i < 10; i++) { + System.out.println(i); + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + System.out.println("M2"); + } +} From 575c15c78008e41d8a469f758a5985bf1ec73c01 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 9 Apr 2018 18:00:39 +1100 Subject: [PATCH 14/41] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20=D0=B4=D0=BB=D1=8F=20=D0=B4?= =?UTF-8?q?=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_05/Homework.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_05/Homework.java diff --git a/src/ru/geekbrains/java2/lesson_05/Homework.java b/src/ru/geekbrains/java2/lesson_05/Homework.java new file mode 100644 index 0000000..f22f968 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Homework.java @@ -0,0 +1,4 @@ +package ru.geekbrains.java2.lesson_05; + +public class Homework { +} From 84540381fe50a407afb3b15afb9cd58a466acb9c Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Mon, 9 Apr 2018 18:01:31 +1100 Subject: [PATCH 15/41] =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B8=D1=87=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BB=D0=BE=D0=B6=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B0=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=20=D1=81=20=D1=81?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D1=81=D0=BD=D0=BE=D0=B9=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_05/{ => Classwork}/Example_SB_1.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/ru/geekbrains/java2/lesson_05/{ => Classwork}/Example_SB_1.java (100%) diff --git a/src/ru/geekbrains/java2/lesson_05/Example_SB_1.java b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java similarity index 100% rename from src/ru/geekbrains/java2/lesson_05/Example_SB_1.java rename to src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java From 1fd7173ea39c1f9f6271193b2e9dce34bd43e3b3 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Tue, 10 Apr 2018 21:23:55 +1100 Subject: [PATCH 16/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2/lesson_05/Classwork/Counter.java | 21 ++++ .../lesson_05/Classwork/Example_SB_1.java | 6 +- .../lesson_05/Classwork/Example_SB_2.java | 36 ++++++ .../lesson_05/Classwork/Example_SB_3.java | 20 ++++ .../java2/lesson_05/Classwork/MainClass.java | 109 ++++++++++++++++++ .../java2/lesson_05/Classwork/MyRunnable.java | 11 ++ .../java2/lesson_05/Classwork/MyThread.java | 10 ++ 7 files changed, 210 insertions(+), 3 deletions(-) create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/Counter.java create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_2.java create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_3.java create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/MainClass.java create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/MyRunnable.java create mode 100644 src/ru/geekbrains/java2/lesson_05/Classwork/MyThread.java diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/Counter.java b/src/ru/geekbrains/java2/lesson_05/Classwork/Counter.java new file mode 100644 index 0000000..2f86959 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/Counter.java @@ -0,0 +1,21 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class Counter { + private int c; + + public Counter() { + c = 0; + } + + public int value() { + return c; + } + + public synchronized void inc() { + c++; + } + + public synchronized void dec(){ + c--; + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java index f7f80d1..7c878ff 100644 --- a/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_1.java @@ -1,4 +1,4 @@ -package ru.geekbrains.java2.lesson_05; +package ru.geekbrains.java2.lesson_05.Classwork; public class Example_SB_1 { public static void main(String[] args) { @@ -13,7 +13,7 @@ public synchronized void method1() { for (int i = 0; i < 10; i++) { System.out.println(i); try { - Thread.sleep(100); + Thread.sleep(101); } catch (InterruptedException e) { e.printStackTrace(); } @@ -26,7 +26,7 @@ public synchronized void method2() { for (int i = 0; i < 10; i++) { System.out.println(i); try { - Thread.sleep(100); + Thread.sleep(102); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_2.java b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_2.java new file mode 100644 index 0000000..5babb64 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_2.java @@ -0,0 +1,36 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class Example_SB_2 { + private Object lock1 = new Object (); + public static void main ( String [] args ) { + Example_SB_2 e2 = new Example_SB_2 (); + System . out . println ( "Start" ); + new Thread (() -> e2 . method1 ()). start (); + new Thread (() -> e2 . method1 ()). start (); + } + public void method1 () { + System . out . println ( "Block-1 begin" ); + for ( int i = 100 ; i < 103 ; i ++) { + System . out . println ( i ); + try { + Thread . sleep ( 100 ); + } catch ( InterruptedException e ) { + e . printStackTrace (); + } + } + System . out . println ( "Block-1 end" ); + synchronized (lock1){ + System.out.println("Synch block begin"); + for (int i = 0; i < 10; i++) { + System.out.println(i); + try { + Thread.sleep(103); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + System.out.println("Synch block end"); + } + System . out . println ( "M2" ); + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_3.java b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_3.java new file mode 100644 index 0000000..2874e58 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/Example_SB_3.java @@ -0,0 +1,20 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class Example_SB_3 { + public static void main(String[] args) { + System.out.println("Start"); + new Thread(() -> method()).start(); + new Thread(() -> method()).start(); + } + + public synchronized static void method() { // синхронизация по классу + for (int i = 0; i < 10; i++) { + System.out.println(i + " " + Thread.currentThread().getName()); + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/MainClass.java b/src/ru/geekbrains/java2/lesson_05/Classwork/MainClass.java new file mode 100644 index 0000000..1ab3bd9 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/MainClass.java @@ -0,0 +1,109 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class MainClass { + public static void main(String[] args) { + /*System.out.println(Thread.currentThread().getName()); + + MyThread myT1 = new MyThread(); + MyThread myT2 = new MyThread(); + myT1.start(); + myT2.start(); + + Thread myR3 = new Thread(new MyRunnable()); + Thread myR4 = new Thread(new MyRunnable()); + myR3.start(); + myR4.start(); + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("end");*/ + + /* Thread th1 = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 1; i < 6; i++) { + System.out.println(i); + } + } + }); + + Thread th2 = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 11; i < 16; i++) { + System.out.println(i); + } + } + }); + + th1.start(); + th2.start(); + + try { + th1.join(); + th2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("end");*/ + + /* Thread th = new Thread(new Runnable() { + @Override + public void run() { + int time = 0; + while (true){ + time++; + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println(time); + } + } + }); + th.setDaemon(true); + th.start(); + + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + System.out.println("end");*/ + + Counter counter = new Counter(); + + Thread th1 = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < 100; i++) { + counter.inc(); + } + } + }); + + Thread th2 = new Thread(new Runnable() { + @Override + public void run() { + for (int i = 0; i < 100; i++) { + counter.dec(); + } + } + }); + + th1.start(); + th2.start(); + + try { + th1.join(); + th2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + System.out.println(counter.value()); + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/MyRunnable.java b/src/ru/geekbrains/java2/lesson_05/Classwork/MyRunnable.java new file mode 100644 index 0000000..c9bb966 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/MyRunnable.java @@ -0,0 +1,11 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class MyRunnable implements Runnable { + @Override + public void run() { + for (int i = 0; i < 10; i++) { + System.out.println(i + " " + Thread.currentThread().getName()); + } + + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/Classwork/MyThread.java b/src/ru/geekbrains/java2/lesson_05/Classwork/MyThread.java new file mode 100644 index 0000000..2c8418b --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/Classwork/MyThread.java @@ -0,0 +1,10 @@ +package ru.geekbrains.java2.lesson_05.Classwork; + +public class MyThread extends Thread { + @Override + public void run() { + for (int i = 0; i < 10; i++) { + System.out.println(i + " " + Thread.currentThread().getName()); + } + } +} From 0de6b41cc9d7cdd4884c5d671ac92bbb31a6e478 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Tue, 10 Apr 2018 21:26:16 +1100 Subject: [PATCH 17/41] =?UTF-8?q?=D1=84=D0=B8=D0=B3=20=D0=B7=D0=BD=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D1=87=D1=82=D0=BE=20=D0=B7=D0=B0=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=20=D0=BF=D0=BE=D1=8F=D0=B2=D0=B8=D0=BB=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .idea/inspectionProfiles/Project_Default.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..b08e5aa --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From 2975712e3b0587a90dc22545c2e7e1cad757817e Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Tue, 10 Apr 2018 21:27:08 +1100 Subject: [PATCH 18/41] =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=B0=D1=88=D0=BD?= =?UTF-8?q?=D1=8F=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_05/Homework.java | 26 ++++++++++ .../lesson_05/MonothreadedCalculate.java | 9 ++++ .../lesson_05/MultithreadedCalculate.java | 49 +++++++++++++++++++ .../java2/lesson_05/ThreadOfCalculation.java | 16 ++++++ .../java2/lesson_05/TwothreadedCalculate.java | 24 +++++++++ 5 files changed, 124 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_05/MonothreadedCalculate.java create mode 100644 src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java create mode 100644 src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java create mode 100644 src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java diff --git a/src/ru/geekbrains/java2/lesson_05/Homework.java b/src/ru/geekbrains/java2/lesson_05/Homework.java index f22f968..937dfd9 100644 --- a/src/ru/geekbrains/java2/lesson_05/Homework.java +++ b/src/ru/geekbrains/java2/lesson_05/Homework.java @@ -1,4 +1,30 @@ package ru.geekbrains.java2.lesson_05; +import java.util.Arrays; + public class Homework { + static final int size = 10000000; + + public static void main(String[] args) { + long startTime; + + float[] arr = new float[size]; + Arrays.fill(arr, 1f); + + startTime = System.currentTimeMillis(); + MonothreadedCalculate.calc(arr.clone()); + System.out.println("Вычисление в однопоточном методе заняло " + + (float) (System.currentTimeMillis() - startTime) / 1000 + " сек."); + + startTime = System.currentTimeMillis(); + TwothreadedCalculate.calc(arr.clone()); + System.out.println("Вычисление в двухпоточном методе заняло " + + (float) (System.currentTimeMillis() - startTime) / 1000 + " сек."); + + startTime = System.currentTimeMillis(); + MultithreadedCalculate.calc(arr.clone()); + System.out.println("Вычисление в многопоточном методе заняло " + + (float) (System.currentTimeMillis() - startTime) / 1000 + " сек."); + } } + diff --git a/src/ru/geekbrains/java2/lesson_05/MonothreadedCalculate.java b/src/ru/geekbrains/java2/lesson_05/MonothreadedCalculate.java new file mode 100644 index 0000000..50c02ff --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/MonothreadedCalculate.java @@ -0,0 +1,9 @@ +package ru.geekbrains.java2.lesson_05; + +public class MonothreadedCalculate { + public static void calc(float arr[]) { + for (int i = 0; i < arr.length; i++) { + arr[i] = (float) (arr[i] * Math.sin(0.2f + i / 5) * Math.cos(0.2f + i / 5) * Math.cos(0.4f + i / 2)); + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java b/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java new file mode 100644 index 0000000..59e9550 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java @@ -0,0 +1,49 @@ +package ru.geekbrains.java2.lesson_05; + +import java.util.ArrayList; +import java.util.Arrays; + +public class MultithreadedCalculate { + public static void calc(float arr[]) { + int partSize = 100000; // РЕГУЛИРОВАТЬ КОЛ-ВО ПОТОКОВ МОЖНО ЭТОЙ ВЕЛИЧИНОЙ + ArrayList arrayList = new ArrayList<>(); + + int currentLocatin = 0; + int nextLocation = partSize; + + while (currentLocatin < arr.length) { + if (nextLocation < arr.length) + arrayList.add(Arrays.copyOfRange(arr, currentLocatin, nextLocation)); + else + arrayList.add(Arrays.copyOfRange(arr, currentLocatin, arr.length)); + currentLocatin = nextLocation; + nextLocation += partSize; + } + + ArrayList threadList = new ArrayList<>(); + for (float[] a : arrayList) { + Thread tmp = new Thread(new ThreadOfCalculation(a)); + threadList.add(tmp); + tmp.start(); + } + + for (Thread h : threadList) { + try { + h.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + currentLocatin = 0; + for (float[] a : arrayList) { + System.arraycopy(a, 0, arr, currentLocatin, a.length); + // раскоментить цикл ниже для вывода границ склейки массивов + /*for (int i = currentLocatin; i < currentLocatin + partSize; i++) { + System.out.println("arr[" + i + "]: " + arr[i]); + if (i > currentLocatin + 2 && i < currentLocatin + partSize - 3) i = currentLocatin + partSize - 3; + }*/ + currentLocatin += partSize; + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java b/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java new file mode 100644 index 0000000..0c7a6f8 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java @@ -0,0 +1,16 @@ +package ru.geekbrains.java2.lesson_05; + +public class ThreadOfCalculation implements Runnable { + private float arr[]; + + public ThreadOfCalculation(float[] arr) { + this.arr = arr; + } + + @Override + public void run() { + for (int i = 0; i < arr.length; i++) { + arr[i] = (float) (arr[i] * Math.sin(0.2f + i / 5) * Math.cos(0.2f + i / 5) * Math.cos(0.4f + i / 2)); + } + } +} diff --git a/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java b/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java new file mode 100644 index 0000000..0764652 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java @@ -0,0 +1,24 @@ +package ru.geekbrains.java2.lesson_05; + +import java.util.Arrays; + +public class TwothreadedCalculate { + public static void calc(float arr[]){ + int half = arr.length / 2; + float[] arr1 = Arrays.copyOfRange(arr, 0, half); + float[] arr2 = Arrays.copyOfRange(arr, half, arr.length); + Thread th1 = new Thread(new ThreadOfCalculation(arr1)); + Thread th2 = new Thread(new ThreadOfCalculation(arr2)); + th1.start(); + th2.start(); + try { + th1.join(); + th2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + System.arraycopy(arr1, 0, arr, 0, half); + System.arraycopy(arr2, 0, arr, half, half); + } +} From f53678d925bf92d29003219d4700a5edf5fb58da Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Tue, 10 Apr 2018 21:32:09 +1100 Subject: [PATCH 19/41] =?UTF-8?q?=D0=BA=D0=B0=D0=BA=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D1=88=D0=B5=D0=BB=20=D1=82=D0=B0=D0=BA=20=D0=B8=20=D1=83=D1=88?= =?UTF-8?q?=D0=B5=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .idea/inspectionProfiles/Project_Default.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index b08e5aa..0000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file From b2f644c5d3b693ad9601ce2c814ba9cc9aeed2bc Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Tue, 10 Apr 2018 23:17:17 +1100 Subject: [PATCH 20/41] =?UTF-8?q?=D0=BC=D0=B0=D0=B0=D0=B0=D0=B0=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8C=D0=BA=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=80=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ru/geekbrains/java2/lesson_05/Homework.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ru/geekbrains/java2/lesson_05/Homework.java b/src/ru/geekbrains/java2/lesson_05/Homework.java index 937dfd9..2899a22 100644 --- a/src/ru/geekbrains/java2/lesson_05/Homework.java +++ b/src/ru/geekbrains/java2/lesson_05/Homework.java @@ -3,7 +3,7 @@ import java.util.Arrays; public class Homework { - static final int size = 10000000; + private static final int size = 10000000; public static void main(String[] args) { long startTime; From efe9f763e97658ad716520d029607c8930f6ec4a Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 11 Apr 2018 20:41:46 +1100 Subject: [PATCH 21/41] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=D0=BC=20=D0=BF=D1=80=D0=B5=D0=BF=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../geekbrains/java2/lesson_05/Homework.java | 4 ++-- .../lesson_05/MultithreadedCalculate.java | 19 +++++++++++-------- .../java2/lesson_05/ThreadOfCalculation.java | 7 +++++-- .../java2/lesson_05/TwothreadedCalculate.java | 4 ++-- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/ru/geekbrains/java2/lesson_05/Homework.java b/src/ru/geekbrains/java2/lesson_05/Homework.java index 2899a22..17b943a 100644 --- a/src/ru/geekbrains/java2/lesson_05/Homework.java +++ b/src/ru/geekbrains/java2/lesson_05/Homework.java @@ -3,12 +3,12 @@ import java.util.Arrays; public class Homework { - private static final int size = 10000000; + private static final int SIZE = 10000000; public static void main(String[] args) { long startTime; - float[] arr = new float[size]; + float[] arr = new float[SIZE]; Arrays.fill(arr, 1f); startTime = System.currentTimeMillis(); diff --git a/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java b/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java index 59e9550..67778c4 100644 --- a/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java +++ b/src/ru/geekbrains/java2/lesson_05/MultithreadedCalculate.java @@ -4,12 +4,13 @@ import java.util.Arrays; public class MultithreadedCalculate { + private static final int PARTSIZE = 100000; // РЕГУЛИРОВАТЬ КОЛ-ВО ПОТОКОВ МОЖНО ЭТОЙ ВЕЛИЧИНОЙ + public static void calc(float arr[]) { - int partSize = 100000; // РЕГУЛИРОВАТЬ КОЛ-ВО ПОТОКОВ МОЖНО ЭТОЙ ВЕЛИЧИНОЙ ArrayList arrayList = new ArrayList<>(); int currentLocatin = 0; - int nextLocation = partSize; + int nextLocation = PARTSIZE; while (currentLocatin < arr.length) { if (nextLocation < arr.length) @@ -17,12 +18,14 @@ public static void calc(float arr[]) { else arrayList.add(Arrays.copyOfRange(arr, currentLocatin, arr.length)); currentLocatin = nextLocation; - nextLocation += partSize; + nextLocation += PARTSIZE; } + currentLocatin = 0; ArrayList threadList = new ArrayList<>(); for (float[] a : arrayList) { - Thread tmp = new Thread(new ThreadOfCalculation(a)); + Thread tmp = new Thread(new ThreadOfCalculation(a, currentLocatin)); + currentLocatin += PARTSIZE; threadList.add(tmp); tmp.start(); } @@ -39,11 +42,11 @@ public static void calc(float arr[]) { for (float[] a : arrayList) { System.arraycopy(a, 0, arr, currentLocatin, a.length); // раскоментить цикл ниже для вывода границ склейки массивов - /*for (int i = currentLocatin; i < currentLocatin + partSize; i++) { + for (int i = currentLocatin; i < currentLocatin + PARTSIZE; i++) { System.out.println("arr[" + i + "]: " + arr[i]); - if (i > currentLocatin + 2 && i < currentLocatin + partSize - 3) i = currentLocatin + partSize - 3; - }*/ - currentLocatin += partSize; + if (i > currentLocatin + 2 && i < currentLocatin + PARTSIZE - 3) i = currentLocatin + PARTSIZE - 3; + } + currentLocatin += PARTSIZE; } } } diff --git a/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java b/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java index 0c7a6f8..98d2dea 100644 --- a/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java +++ b/src/ru/geekbrains/java2/lesson_05/ThreadOfCalculation.java @@ -2,15 +2,18 @@ public class ThreadOfCalculation implements Runnable { private float arr[]; + private int offset; - public ThreadOfCalculation(float[] arr) { + public ThreadOfCalculation(float[] arr, int offset) { this.arr = arr; + this.offset = offset; } @Override public void run() { for (int i = 0; i < arr.length; i++) { - arr[i] = (float) (arr[i] * Math.sin(0.2f + i / 5) * Math.cos(0.2f + i / 5) * Math.cos(0.4f + i / 2)); + int j = i + offset; + arr[i] = (float) (arr[i] * Math.sin(0.2f + j / 5) * Math.cos(0.2f + j / 5) * Math.cos(0.4f + j / 2)); } } } diff --git a/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java b/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java index 0764652..635b189 100644 --- a/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java +++ b/src/ru/geekbrains/java2/lesson_05/TwothreadedCalculate.java @@ -7,8 +7,8 @@ public static void calc(float arr[]){ int half = arr.length / 2; float[] arr1 = Arrays.copyOfRange(arr, 0, half); float[] arr2 = Arrays.copyOfRange(arr, half, arr.length); - Thread th1 = new Thread(new ThreadOfCalculation(arr1)); - Thread th2 = new Thread(new ThreadOfCalculation(arr2)); + Thread th1 = new Thread(new ThreadOfCalculation(arr1, 0)); + Thread th2 = new Thread(new ThreadOfCalculation(arr2, half)); th1.start(); th2.start(); try { From 3055194e4a382511065319dcc3436b4b0b654eab Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Wed, 11 Apr 2018 20:44:11 +1100 Subject: [PATCH 22/41] =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=BD=D1=8F=D0=BB,?= =?UTF-8?q?=20=D1=8D=D1=82=D0=BE=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/inspectionProfiles/Project_Default.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .idea/inspectionProfiles/Project_Default.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..b08e5aa --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From ea3b5b61828370889b38aa4aa106799628f0b48d Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Thu, 12 Apr 2018 18:34:33 +1100 Subject: [PATCH 23/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Classwork/client/Controller.java | 4 +++ .../lesson_06/Classwork/client/Main.java | 23 +++++++++++++ .../lesson_06/Classwork/client/sample.fxml | 4 +++ .../lesson_06/Classwork/server/MainClass.java | 34 +++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java create mode 100644 src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java create mode 100644 src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml create mode 100644 src/ru/geekbrains/java2/lesson_06/Classwork/server/MainClass.java diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java new file mode 100644 index 0000000..5eecfd3 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java @@ -0,0 +1,4 @@ +package ru.geekbrains.java2.lesson_06.Classwork.client; + +public class Controller { +} diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java new file mode 100644 index 0000000..b9db19a --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java @@ -0,0 +1,23 @@ +package ru.geekbrains.java2.lesson_06.Classwork.client; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class Main extends Application { + + @Override + public void start(Stage primaryStage) throws Exception{ + Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); + primaryStage.setTitle("Hello World"); + primaryStage.setScene(new Scene(root, 300, 275)); + primaryStage.show(); + } + + + public static void main(String[] args) { + launch(args); + } +} diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml b/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml new file mode 100644 index 0000000..9efdbe6 --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/server/MainClass.java b/src/ru/geekbrains/java2/lesson_06/Classwork/server/MainClass.java new file mode 100644 index 0000000..8b3fcea --- /dev/null +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/server/MainClass.java @@ -0,0 +1,34 @@ +package ru.geekbrains.java2.lesson_06.Classwork.server; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.Scanner; + +public class MainClass { + public static void main(String[] args) { + try (ServerSocket serverSocket = new ServerSocket(8189)) { + System.out.println("Server started..."); + Socket socket = serverSocket.accept(); + System.out.println("Client connected."); + + Scanner scanner = new Scanner(socket.getInputStream()); + PrintWriter writer = new PrintWriter(socket.getOutputStream()); + + String msg = ""; + while (!msg.equals("/end")) { + msg = scanner.nextLine(); + System.out.println("Client said: " + msg); + writer.println("echo answer: " + msg); + writer.flush(); + } + System.out.println("Command for disconnect"); + socket.close(); + System.out.println("Server stopped..."); + } catch (IOException e) { + e.printStackTrace(); + } + + } +} From 96b34ae972e8b44d92dafece76c5ac8f64fc9cd4 Mon Sep 17 00:00:00 2001 From: Teryaev Sergey Date: Thu, 12 Apr 2018 23:15:06 +1100 Subject: [PATCH 24/41] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20(=D0=B7=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Classwork/client/Controller.java | 72 ++++++++++++++++++- .../lesson_06/Classwork/client/Main.java | 4 +- .../lesson_06/Classwork/client/sample.fxml | 18 +++-- .../{MainClass.java => ServerMain.java} | 14 ++-- 4 files changed, 94 insertions(+), 14 deletions(-) rename src/ru/geekbrains/java2/lesson_06/Classwork/server/{MainClass.java => ServerMain.java} (68%) diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java index 5eecfd3..ff76fa0 100644 --- a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Controller.java @@ -1,4 +1,74 @@ package ru.geekbrains.java2.lesson_06.Classwork.client; -public class Controller { +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Button; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; +import java.net.URL; +import java.util.ResourceBundle; + +public class Controller implements Initializable { + public static final String SERVER_IP = "localhost"; + public static final int SERVER_PORT = 8189; + + @FXML + public TextArea chatArea; + @FXML + public TextField msgField; +// public Button sendButton; + + private Socket socket; + private DataOutputStream out; + + @Override + public void initialize(URL location, ResourceBundle resources) { + try { + socket = new Socket(SERVER_IP, SERVER_PORT); + DataInputStream in = new DataInputStream(socket.getInputStream()); + out = new DataOutputStream(socket.getOutputStream()); + Thread thread = new Thread(() -> { + String msg = ""; + try { + while (!msg.equals("echo answer: /end")) { + msg = in.readUTF(); + chatArea.appendText(msg + "\n"); + } + chatArea.appendText("соединение разорвано\n"); + } catch (IOException e) { + System.err.println("Сервер рвзорвал соединение"); + e.printStackTrace(); +// System.exit(0); + } + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + }); + thread.setDaemon(true); + thread.start(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void sendMsg() { + if (!msgField.getText().equals("")) + try { + out.writeUTF(msgField.getText()); + out.flush(); + msgField.clear(); + msgField.requestFocus(); + } catch (IOException e) { + chatArea.appendText("нет связи с сервером\n"); + } + } + } + diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java index b9db19a..4c4e59b 100644 --- a/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/Main.java @@ -11,8 +11,8 @@ public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); - primaryStage.setTitle("Hello World"); - primaryStage.setScene(new Scene(root, 300, 275)); + primaryStage.setTitle("Geek JavaFX chat"); + primaryStage.setScene(new Scene(root, 400, 600)); primaryStage.show(); } diff --git a/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml b/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml index 9efdbe6..13236a6 100644 --- a/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml +++ b/src/ru/geekbrains/java2/lesson_06/Classwork/client/sample.fxml @@ -1,4 +1,14 @@ - - - \ No newline at end of file + + + + + + +