From 75a21eeb3793c8be0cb60d44976a6c150459250b Mon Sep 17 00:00:00 2001 From: hasksy Date: Sun, 20 Dec 2020 14:26:15 +0300 Subject: [PATCH 1/3] Added My Sites Desing --- src/Design/Mailbox/Main.java | 4 + src/Design/Mailbox/Message.java | 48 +++++ src/Design/Mailbox/SortCompareMethods.java | 42 +++++ src/Design/Mailbox/Tags.java | 18 ++ src/Design/Youtube/Channel.java | 48 +++++ src/Design/Youtube/Main.java | 25 +++ src/Design/Youtube/SortCompareMethods.java | 208 +++++++++++++++++++++ src/Design/Youtube/Video.java | 80 ++++++++ 8 files changed, 473 insertions(+) create mode 100644 src/Design/Mailbox/Main.java create mode 100644 src/Design/Mailbox/Message.java create mode 100644 src/Design/Mailbox/SortCompareMethods.java create mode 100644 src/Design/Mailbox/Tags.java create mode 100644 src/Design/Youtube/Channel.java create mode 100644 src/Design/Youtube/Main.java create mode 100644 src/Design/Youtube/SortCompareMethods.java create mode 100644 src/Design/Youtube/Video.java diff --git a/src/Design/Mailbox/Main.java b/src/Design/Mailbox/Main.java new file mode 100644 index 0000000..a738844 --- /dev/null +++ b/src/Design/Mailbox/Main.java @@ -0,0 +1,4 @@ +package Design.Mailbox; + +public class Main { +} diff --git a/src/Design/Mailbox/Message.java b/src/Design/Mailbox/Message.java new file mode 100644 index 0000000..1c809dc --- /dev/null +++ b/src/Design/Mailbox/Message.java @@ -0,0 +1,48 @@ +package Design.Mailbox; + +public class Message { + + private final String from; + private final String to; + private final String content; + private String tags; + private String status; + + + public Message(String from, String to, String content, String tags, String status) { + this.from = from; + this.to = to; + this.content = content; + this.tags = tags; + this.status = status; + } + + public String getFrom() { + return from; + } + + public String getTo() { + return to; + } + + public String getContent() { + return content; + } + + public String getTags() { + return tags; + } + + public String getStatus() { + return status; + } + + public void setTags(String tags) { + this.tags = tags; + } + + public void setStatus(String status) { + this.status = status; + } + +} diff --git a/src/Design/Mailbox/SortCompareMethods.java b/src/Design/Mailbox/SortCompareMethods.java new file mode 100644 index 0000000..6dfd20c --- /dev/null +++ b/src/Design/Mailbox/SortCompareMethods.java @@ -0,0 +1,42 @@ +package Design.Mailbox; + +import java.util.Arrays; +import java.util.List; + +public class SortCompareMethods { + + public static List initMessageList() { + return Arrays.asList( + new Message( + "windows@engage.windows.com", + "sergeykovaltsov@gmail.com", + "Get up and running with your new PC....", + "", + ""), + new Message( + "noreply@stepik.org", + "sergeykovaltsov@gmail.com", + "Спасибо, что смотрите мои курсы по статистике!...", + "", + ""), + new Message( + "notify@mail.notion.so", + "sergeykovaltsov@gmail.com", + "Click here to log in with this magic link...", + "", + ""), + new Message( + "no-reply@accounts.google.com", + "ironmanspb@gmail.com", + "Кто-то изменил пароль Вашего аккаунта Google...", + "", + ""), + new Message( + "ironmanspb@gmail.com", + "sergeykovaltsov@gmail.com", + "Проверка...", + "", + "") + ); + } +} diff --git a/src/Design/Mailbox/Tags.java b/src/Design/Mailbox/Tags.java new file mode 100644 index 0000000..5ebda84 --- /dev/null +++ b/src/Design/Mailbox/Tags.java @@ -0,0 +1,18 @@ +package Design.Mailbox; + +public enum Tags { + + IMPORTANT("important"), + MARKED("marked"); + + + private String name; + + public String getName() { + return name; + } + + Tags(String name) { + this.name = name; + } +} diff --git a/src/Design/Youtube/Channel.java b/src/Design/Youtube/Channel.java new file mode 100644 index 0000000..a9b7cee --- /dev/null +++ b/src/Design/Youtube/Channel.java @@ -0,0 +1,48 @@ +package Design.Youtube; + +public class Channel { + + private String nameChannel; + private boolean verified; + private int subscribers; + private boolean subscribed; + + public Channel(String nameChannel, boolean verified, int subscribers, boolean subscribed) { + this.nameChannel = nameChannel; + this.verified = verified; + this.subscribers = subscribers; + this.subscribed = subscribed; + } + + public String getNameChannel() { + return nameChannel; + } + + public int getSubscribers() { + return subscribers; + } + + public boolean isVerified() { + return verified; + } + + public boolean isSubscribed() { + return subscribed; + } + + public void switchVerified() { + this.verified = !verified; + } + + public void setNameChannel(String nameChannel) { + this.nameChannel = nameChannel; + } + + public void setSubscribers(int subscribers) { + this.subscribers = subscribers; + } + + public void switchSubscribed() { + this.subscribed = !subscribed; + } +} diff --git a/src/Design/Youtube/Main.java b/src/Design/Youtube/Main.java new file mode 100644 index 0000000..b2bbde6 --- /dev/null +++ b/src/Design/Youtube/Main.java @@ -0,0 +1,25 @@ +package Design.Youtube; + + +import java.util.Comparator; + +public class Main { + + public static void main(String[] args) { + System.out.println("Most liked 3 videos"); + SortCompareMethods.getMostLikedNVideosWithLikes(SortCompareMethods.initVideoList(), 3).forEach(System.out::println); + System.out.println("The 5 newest videos"); + SortCompareMethods.getTheNewestNVideosWithDate(SortCompareMethods.initVideoList(), 5).forEach(System.out::println); + System.out.println("The 7 most viewed videos"); + SortCompareMethods.getTheMostViewedNVideosWithViews(SortCompareMethods.initVideoList(), 7).forEach(System.out::println); + System.out.println("Sort by views"); + SortCompareMethods.sortByViews(SortCompareMethods.initVideoList()).forEach(System.out::println); + System.out.println("Sort by title"); + SortCompareMethods.sortByTitle(SortCompareMethods.initVideoList()).forEach(System.out::println); + System.out.println("Channel and video Output"); + SortCompareMethods.getChannelAndVideoStringList(SortCompareMethods.initVideoList()).forEach(System.out::println); + System.out.println("Sort by subscribers"); + SortCompareMethods.sortVideosByChannelSubscribers(SortCompareMethods.initVideoList()).forEach(System.out::println); + + } +} diff --git a/src/Design/Youtube/SortCompareMethods.java b/src/Design/Youtube/SortCompareMethods.java new file mode 100644 index 0000000..187b5a5 --- /dev/null +++ b/src/Design/Youtube/SortCompareMethods.java @@ -0,0 +1,208 @@ +package Design.Youtube; + + +import javax.swing.*; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import java.util.stream.Stream; + + +public class SortCompareMethods { + + public static List getMostLikedNVideosWithLikes(List