Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a2f4abf
Exercise 1.1
Stikender Dec 14, 2022
92bd905
Exercise 1.1,1.2
Stikender Dec 14, 2022
023564b
Exercise 1.1,1.2, 1.3
Stikender Dec 14, 2022
8b114a2
Exercise 1.1,1.2, 1.3
Stikender Dec 14, 2022
dc68dfc
Exercise 1.1,1.2, 1.3
Stikender Dec 17, 2022
452cc93
Exercise 1.1,1.2, 1.3
Stikender Dec 19, 2022
8b3e0bc
Exercise 1.1
Stikender Dec 19, 2022
e725440
finish commit
Stikender Dec 20, 2022
3f57c0f
finish commit
Stikender Dec 20, 2022
fc1399c
OOP Part 3 Finish commit
Stikender Dec 21, 2022
4d4883f
OOP Part 4 Finish commit
Stikender Dec 27, 2022
7fb3a49
OOP Part 5 First commit
Stikender Jan 9, 2023
6945c0d
OOP Part 5 Finish commit
Stikender Jan 13, 2023
39ad8b7
OOP Part 5 Finish commit
Stikender Jan 14, 2023
4edea0e
OOP Part 5 Finish commit
Stikender Jan 14, 2023
b1f6cb7
OOP Part 6 first commit
Stikender Jan 14, 2023
f662922
OOP Part 6 FINISH commit
Stikender Jan 17, 2023
a92f925
OOP Part 6 FINISH commit
Stikender Jan 17, 2023
17574ad
OOP Part 6 FINISH commit
Stikender Jan 18, 2023
131716f
OOP Part 6 FINISH commit
Stikender Jan 18, 2023
28ad4fc
Collection part 1 Finish commit
Stikender Jan 20, 2023
3b58b45
Collection part 2 first commit
Stikender Jan 22, 2023
7aef420
Collection part 2 Finish commit
Stikender Jan 22, 2023
89a5eb4
Collection part 3 Finish commit
Stikender Jan 27, 2023
9e85db6
Collection part 3 Finish commit
Stikender Jan 27, 2023
a941690
Functional Interfaces Finish commit
Stikender Jan 31, 2023
0725ae2
Stream Finish commit
Stikender Feb 2, 2023
bff1091
Stream Finish commit
Stikender Feb 9, 2023
54093ad
Stream Finish commit
Stikender Feb 9, 2023
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# Project exclude paths
/out/
/out/
/.idea/
/.iml/
1 change: 1 addition & 0 deletions .idea/modules.xml

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

11 changes: 11 additions & 0 deletions Java core/Java core.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
74 changes: 74 additions & 0 deletions Java core/src/Functional_Interfaces/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package Functional_Interfaces;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class Main {
public static <T, U> void main(String[] args) {

Person mike = new Person("Mike", 15);
Person sam = new Person("Sam", 0);
Person kat = new Person("Kat", 29);

List<Person> people = new ArrayList<>();
people.add(mike);
people.add(sam);
people.add(kat);
// Задание 1 Predicate//
// Predicate<Person> predicate = new Predicate <Person>() {
// @Override
// public boolean test(Person person) {
// return person.getAge() >= 0;
// }
// };
// Predicate<Person> predicate1 = person -> person.getAge() >= 0;
//
// people.removeIf(predicate);
//
// for (Person person : people) {
// System.out.println(person);
// }
// Задание 2 Consumer//
Consumer<Person> personConsumer = new Consumer<Person>() {
@Override
public void accept(Person person) {
System.out.println("Приветствую " + person.getName());
}
};
Consumer<Person> personConsumer1 = person -> System.out.println("Приветствую " + person.getName());
people.forEach(personConsumer);
// Задание 3 Function//
Function<Double, Long> convertNumbers = new Function<Double, Long>() {
@Override
public Long apply(Double aDouble) {
return aDouble.longValue();
}
};

Function<Double, Long> convertNumbers1 = aDouble -> aDouble.longValue();
System.out.println(convertNumbers.apply(10.95225584584));
// Задание 4 Supplier//

Supplier<Integer> freeNumbers = new Supplier<Integer>() {
@Override
public Integer get() {
int max = 100;
return (int) (Math.random() * ++max);
}
};
AtomicInteger max = new AtomicInteger(100);
Supplier<Integer> freeNumbers1 = ()-> (int) (Math.random() * max.incrementAndGet());
System.out.println(freeNumbers.get());
// Задание 5 комбинирование функций//

Predicate<Person> predicate1 = person -> person.getAge() == 0 ? person.getAge() < 0 : person.getAge() > 0;

System.out.println(predicate1.test(mike));
}

}
50 changes: 50 additions & 0 deletions Java core/src/Functional_Interfaces/Person.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package Functional_Interfaces;

import java.util.Objects;

public class Person {

private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Person)) return false;
Person person = (Person) o;
return getAge() == person.getAge() && Objects.equals(getName(), person.getName());
}

@Override
public int hashCode() {
return Objects.hash(getName(), getAge());
}

@Override
public String toString() {
return "Человек: " +
"name='" + getName() + '\'' +
", age=" + getAge();
}
}
139 changes: 139 additions & 0 deletions Java core/src/OOP/Driver/Driver.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
package OOP.Driver;

import OOP.transport.Transport;

import java.util.Objects;

public class Driver <T extends Transport>{
private String name;
private String driverLicense;
private int experience;
private T vehicle;
DriverLicenseCategory driverLicenseCategory;
public enum DriverLicenseCategory {
DRIVER_LICENSE_CATEGORY_C("C"),
DRIVER_LICENSE_CATEGORY_B("B"),
DRIVER_LICENSE_CATEGORY_D("D");
private String driverCategory;

DriverLicenseCategory(String driverCategory) {
this.driverCategory = driverCategory;
}

public String getDriverCategory() throws NoInformationProvided{

return driverCategory;
}

public void setDriverCategory(String driverCategory) {
this.driverCategory = driverCategory;
}
@Override
public String toString() {
return driverCategory;
}
}
public Driver(String name, String driverLicense, int experience, T vehicle, DriverLicenseCategory driverLicenseCategory) throws NoInformationProvided {
if (name == null || name.isEmpty() || name.isBlank()) {
this.name = "default";
} else {
this.name = name;
}
if (driverLicense == null || driverLicense.isEmpty() || driverLicense.isBlank()) {
this.driverLicense = "default";
} else {
this.driverLicense = driverLicense;
}
if (Double.compare(experience, 0) == 0) {
this.experience = 5;
} else {
this.experience = experience;
}
this.vehicle = vehicle;
if (driverLicenseCategory != null) {
this.driverLicenseCategory = driverLicenseCategory;
} else {
throw new NoInformationProvided("Необходимо указать тип прав!");
}
}

public Driver(String name) {
this.name = name;
}

public void startMoving() {
System.out.println("Сажусь на водительское место");
System.out.println("Завожу автомобиль");
System.out.println("Еду");
}

public void stopMoving() {
System.out.println("Паркую автомобиль");
System.out.println("Глушу мотор!");
}

public void fillTheCar() {
System.out.println("Заехать на Пит-Стоп");
System.out.println("Заправить автомобиль");
}
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDriverLicense() {
return driverLicense;
}

public void setDriverLicense(String driverLicense) {
this.driverLicense = driverLicense;
}

public int getExperience() {
return experience;
}

public void setExperience(int experience) {
this.experience = experience;
}

public T getVehicle() {
return vehicle;
}

public void setVehicle(T vehicle) {
this.vehicle = vehicle;
}

public DriverLicenseCategory getDriverLicenseCategory() {
return driverLicenseCategory;
}
public void setDriverLicenseCategory(DriverLicenseCategory driverLicenseCategory) throws NoInformationProvided{
if (driverLicenseCategory != null) {
this.driverLicenseCategory = driverLicenseCategory;
} else {
throw new NoInformationProvided("Необходимо указать тип прав!");
}
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Driver)) return false;
Driver<?> driver = (Driver<?>) o;
return getExperience() == driver.getExperience() && Objects.equals(getName(), driver.getName()) && Objects.equals(getDriverLicense(), driver.getDriverLicense()) && Objects.equals(getVehicle(), driver.getVehicle());
}

@Override
public int hashCode() {
return Objects.hash(getName(), getDriverLicense(), getExperience(), getVehicle());
}

@Override
public String toString() {
return "Водитель " + getName() + ", категория прав: " + getDriverLicenseCategory() + " управляет автомобилем " + getVehicle();
}
}
11 changes: 11 additions & 0 deletions Java core/src/OOP/Driver/DriverCategoryB.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package OOP.Driver;

import OOP.transport.Car;

public class DriverCategoryB extends Driver<Car>{

public DriverCategoryB(String name, String driverLicense, int experience, Car vehicle, DriverLicenseCategory driverLicenseCategory) throws NoInformationProvided {
super(name, driverLicense, experience, vehicle, driverLicenseCategory);
}

}
11 changes: 11 additions & 0 deletions Java core/src/OOP/Driver/DriverCategoryC.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package OOP.Driver;

import OOP.transport.Truck;

public class DriverCategoryC extends Driver<Truck>{

public DriverCategoryC(String name, String driverLicense, int experience, Truck vehicle, DriverLicenseCategory driverLicenseCategory) throws NoInformationProvided{
super(name, driverLicense, experience, vehicle,driverLicenseCategory);
}

}
12 changes: 12 additions & 0 deletions Java core/src/OOP/Driver/DriverCategoryD.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package OOP.Driver;

import OOP.transport.Bus;

public class DriverCategoryD extends Driver<Bus>{

public DriverCategoryD(String name, String driverLicense, int experience, Bus vehicle, DriverLicenseCategory driverLicenseCategory) throws NoInformationProvided {
super(name, driverLicense, experience, vehicle, driverLicenseCategory);
}


}
8 changes: 8 additions & 0 deletions Java core/src/OOP/Driver/NoInformationProvided.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package OOP.Driver;

public class NoInformationProvided extends RuntimeException{
public NoInformationProvided(String message) {
super(message);
}

}
Loading