From 7ad26d11e122fdd99c40a8fee87ddc4944f8752f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=AErl=C4=83deanu=20Rare=C8=99?= Date: Fri, 1 Mar 2024 11:15:46 +0200 Subject: [PATCH] practice DONE --- .../com/rinftech/animals/DomesticAnimal.java | 1 - .../java/com/rinftech/practice/Practice.java | 129 ++++++++++++++++++ .../com/rinftech/practice/animal/Animal.java | 11 ++ .../com/rinftech/practice/animal/Lion.java | 13 ++ .../com/rinftech/practice/animal/Panther.java | 13 ++ .../com/rinftech/practice/animal/Tiger.java | 14 ++ .../rinftech/practice/person/Employee.java | 18 +++ .../com/rinftech/practice/person/Person.java | 15 ++ .../com/rinftech/practice/shapes/Circle.java | 15 ++ .../rinftech/practice/shapes/Rectangle.java | 17 +++ .../com/rinftech/practice/shapes/Shape.java | 8 ++ .../rinftech/practice/shapes/Triangle.java | 17 +++ .../com/rinftech/practice/vehicle/Car.java | 33 +++++ .../rinftech/practice/vehicle/Motorcycle.java | 40 ++++++ .../com/rinftech/practice/vehicle/Truck.java | 33 +++++ .../rinftech/practice/vehicle/Vehicle.java | 52 +++++++ 16 files changed, 428 insertions(+), 1 deletion(-) create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/Practice.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/animal/Animal.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/animal/Lion.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/animal/Panther.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/animal/Tiger.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/person/Employee.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/person/Person.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/shapes/Circle.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/shapes/Rectangle.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/shapes/Shape.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/shapes/Triangle.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/vehicle/Car.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/vehicle/Motorcycle.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/vehicle/Truck.java create mode 100644 JavaCourse/src/main/java/com/rinftech/practice/vehicle/Vehicle.java diff --git a/JavaCourse/src/main/java/com/rinftech/animals/DomesticAnimal.java b/JavaCourse/src/main/java/com/rinftech/animals/DomesticAnimal.java index 4f20f0d..c9ecea1 100644 --- a/JavaCourse/src/main/java/com/rinftech/animals/DomesticAnimal.java +++ b/JavaCourse/src/main/java/com/rinftech/animals/DomesticAnimal.java @@ -1,6 +1,5 @@ package com.rinftech.animals; -import jdk.nashorn.internal.codegen.CompilerConstants; import java.util.Objects; diff --git a/JavaCourse/src/main/java/com/rinftech/practice/Practice.java b/JavaCourse/src/main/java/com/rinftech/practice/Practice.java new file mode 100644 index 0000000..40ee073 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/Practice.java @@ -0,0 +1,129 @@ +package com.rinftech.practice; + +import java.util.*; + +public class Practice { + + //1 + public int sumOfDigits(int number) { + int sum = 0; + while (number != 0) { + sum += number % 10; + number /= 10; + } + return sum; + } + + //2 + public void countLettersSpacesNumbers(String input) { + int letters = 0; + int spaces = 0; + int numbers = 0; + for (Character ch : input.toCharArray()) { + if (Character.isLetter(ch)) { + letters++; + } else if (Character.isDigit(ch)) { + numbers++; + } else if (Character.isWhitespace(ch)) { + spaces++; + } + } + System.out.println("Letters: " + letters); + System.out.println("Spaces: " + spaces); + System.out.println("Numbers: " + numbers); + } + + //5 + public static String[] findCommonElements(String[] array1, String[] array2) { + Set set1 = new HashSet<>(Arrays.asList(array1)); + Set set2 = new HashSet<>(Arrays.asList(array2)); + + set1.retainAll(set2); + + String[] commonElements = new String[set1.size()]; + set1.toArray(commonElements); + + return commonElements; + } + + //8 + public void swapElements(ArrayList list, int index1, int index2) { + if (index1 < 0 || index1 >= list.size() || index2 < 0 || index2 >= list.size()) { + System.out.println("Invalid indices."); + return; + } + + String aux = list.get(index1); + list.set(index1, list.get(index2)); + list.set(index2, aux); + } + + //9 + public void findOccurrences(List list, String element) { + int firstOccurrence = -1; + int lastOccurrence = -1; + + for (int i = 0; i < list.size(); i++) { + if (list.get(i).equals(element)) { + if (firstOccurrence == -1) { + firstOccurrence = i; + } + lastOccurrence = i; + } + } + + if (firstOccurrence != -1) { + System.out.println("First occurrence for " + element + " is position " + firstOccurrence + " and last is position " + lastOccurrence); + } else { + System.out.println("Element " + element + " not found in the list."); + } + } + + //10 + public List> groupAnagrams(String[] strs) { + if (strs == null || strs.length == 0) { + return new ArrayList<>(); + } + + Map> map = new HashMap<>(); + + for (String str : strs) { + char[] chars = str.toCharArray(); + Arrays.sort(chars); + String sorted = new String(chars); + if (!map.containsKey(sorted)) { + map.put(sorted, new ArrayList<>()); + } + map.get(sorted).add(str); + } + + return new ArrayList<>(map.values()); + } + + public static void main(String[] args) { + + Practice practice = new Practice(); + + System.out.println(practice.sumOfDigits(8733)); + System.out.println(); + + practice.countLettersSpacesNumbers("The quick brown fox jumps over 42 lazy dogs"); + System.out.println(); + + String[] array1 = {"Python", "Java", "GoLang", "Lisp"}; + String[] array2 = {"Java", "C++", "Apples", "Hamburger", "Lisp"}; + System.out.println(Arrays.toString(findCommonElements(array1, array2))); + System.out.println(); + + ArrayList list = new ArrayList<>(Arrays.asList("Red", "Green", "Black", "White", "Pink", "Black")); + practice.swapElements(list, 1, 4); + System.out.println(); + + practice.findOccurrences(list, "Black"); + System.out.println(); + + String[] strs = {"eat", "tea", "tan", "ate", "nat", "bat", "listen", "silent", "enlist", "hello", "world", "dlrow"}; + System.out.println(practice.groupAnagrams(strs)); + System.out.println(); + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/animal/Animal.java b/JavaCourse/src/main/java/com/rinftech/practice/animal/Animal.java new file mode 100644 index 0000000..85368ab --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/animal/Animal.java @@ -0,0 +1,11 @@ +package com.rinftech.practice.animal; + +public class Animal { + public void eat() { + System.out.println("The animal eats food."); + } + + public void sound() { + System.out.println("The animal makes a sound."); + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/animal/Lion.java b/JavaCourse/src/main/java/com/rinftech/practice/animal/Lion.java new file mode 100644 index 0000000..d06b1b1 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/animal/Lion.java @@ -0,0 +1,13 @@ +package com.rinftech.practice.animal; + +public class Lion extends Animal { + @Override + public void eat() { + System.out.println("The lion eats meat."); + } + + @Override + public void sound() { + System.out.println("The lion roars."); + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/animal/Panther.java b/JavaCourse/src/main/java/com/rinftech/practice/animal/Panther.java new file mode 100644 index 0000000..f4aea3e --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/animal/Panther.java @@ -0,0 +1,13 @@ +package com.rinftech.practice.animal; + +public class Panther extends Animal { + @Override + public void eat() { + System.out.println("The panther eats meat and birds."); + } + + @Override + public void sound() { + System.out.println("The panther meows."); + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/animal/Tiger.java b/JavaCourse/src/main/java/com/rinftech/practice/animal/Tiger.java new file mode 100644 index 0000000..5d8b4a0 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/animal/Tiger.java @@ -0,0 +1,14 @@ +package com.rinftech.practice.animal; + +public class Tiger extends Animal { + @Override + public void eat() { + System.out.println("The tiger eats meat and humans"); + } + + @Override + public void sound() { + System.out.println("The tiger growls."); + + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/person/Employee.java b/JavaCourse/src/main/java/com/rinftech/practice/person/Employee.java new file mode 100644 index 0000000..9648163 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/person/Employee.java @@ -0,0 +1,18 @@ +package com.rinftech.practice.person; + +public class Employee extends Person { + + private int employeeId; + private String jobTitle; + + public int getEmployeeId() { + return employeeId; + } + + @Override + public String getLastName() { + return super.getLastName() + jobTitle; + } + +} + diff --git a/JavaCourse/src/main/java/com/rinftech/practice/person/Person.java b/JavaCourse/src/main/java/com/rinftech/practice/person/Person.java new file mode 100644 index 0000000..d2593a4 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/person/Person.java @@ -0,0 +1,15 @@ +package com.rinftech.practice.person; + +public class Person { + + private String firstName; + private String lastName; + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/shapes/Circle.java b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Circle.java new file mode 100644 index 0000000..37e5a36 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Circle.java @@ -0,0 +1,15 @@ +package com.rinftech.practice.shapes; + +public class Circle extends Shape { + + private final float radius; + + public Circle(float radius) { + this.radius = radius; + } + + @Override + public float calculateArea() { + return (float) (Math.PI * Math.pow(radius, 2)); + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/shapes/Rectangle.java b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Rectangle.java new file mode 100644 index 0000000..df16367 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Rectangle.java @@ -0,0 +1,17 @@ +package com.rinftech.practice.shapes; + +public class Rectangle extends Shape { + + private final float width; + private final float height; + + public Rectangle(float width, float height) { + this.width = width; + this.height = height; + } + + @Override + public float calculateArea() { + return width * height; + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/shapes/Shape.java b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Shape.java new file mode 100644 index 0000000..820f483 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Shape.java @@ -0,0 +1,8 @@ +package com.rinftech.practice.shapes; + +public class Shape { + + public float calculateArea() { + return 0.0f; + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/shapes/Triangle.java b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Triangle.java new file mode 100644 index 0000000..02b4f4b --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/shapes/Triangle.java @@ -0,0 +1,17 @@ +package com.rinftech.practice.shapes; + +public class Triangle extends Shape { + + private final float base; + private final float height; + + public Triangle(float base, float height) { + this.base = base; + this.height = height; + } + + @Override + public float calculateArea() { + return (base * height) / 2; + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Car.java b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Car.java new file mode 100644 index 0000000..a8cc301 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Car.java @@ -0,0 +1,33 @@ +package com.rinftech.practice.vehicle; + +public class Car extends Vehicle { + + public Car(String make, String model, int year, String fuelType) { + super(make, model, year, fuelType); + } + + public String calculateFuelEfficiency() { + + if (this.getFuelType().equals("diesel")) { + return "Fuel efficient for a car"; + } else { + return "Not fuel efficient for a car"; + } + } + + public String distanceTravelled() { + if (this.getYear() > 2000) { + return "not so much"; + } else { + return "a lot"; + } + } + + public String maxSpeed() { + if (this.getYear() > 1990 && this.getFuelType().equals("gas")) { + return "fast"; + } else { + return "slow"; + } + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Motorcycle.java b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Motorcycle.java new file mode 100644 index 0000000..2dff600 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Motorcycle.java @@ -0,0 +1,40 @@ +package com.rinftech.practice.vehicle; + +public class Motorcycle extends Vehicle { + + public Motorcycle(String make, String model, int year, String fuelType) { + if (fuelType.equals("diesel")) { + throw new IllegalArgumentException("Motorcycles cannot run on diesel"); + } else { + this.setMake(make); + this.setModel(model); + this.setYear(year); + this.setFuelType(fuelType); + } + } + + public String calculateFuelEfficiency() { + + if (this.getYear() > 2010) { + return "Fuel efficient for a motorcycle"; + } else { + return "Not fuel efficient for a motorcycle"; + } + } + + public String distanceTravelled() { + if (this.getYear() > 2010) { + return "not so much"; + } else { + return "a lot"; + } + } + + public String maxSpeed() { + if (this.getYear() > 2020) { + return "fast"; + } else { + return "slow"; + } + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Truck.java b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Truck.java new file mode 100644 index 0000000..f255c16 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Truck.java @@ -0,0 +1,33 @@ +package com.rinftech.practice.vehicle; + +public class Truck extends Vehicle { + + public Truck(String make, String model, int year, String fuelType) { + super(make, model, year, fuelType); + } + + public String calculateFuelEfficiency() { + + if (this.getFuelType().equals("diesel")) { + return "Fuel efficient for a truck"; + } else { + return "Not fuel efficient for a truck"; + } + } + + public String distanceTravelled() { + if (this.getYear() > 2000) { + return "not so much"; + } else { + return "a lot"; + } + } + + public String maxSpeed() { + if (this.getYear() > 2000 && this.getFuelType().equals("gas")) { + return "fast"; + } else { + return "slow"; + } + } +} diff --git a/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Vehicle.java b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Vehicle.java new file mode 100644 index 0000000..bbf3e72 --- /dev/null +++ b/JavaCourse/src/main/java/com/rinftech/practice/vehicle/Vehicle.java @@ -0,0 +1,52 @@ +package com.rinftech.practice.vehicle; + + +public class Vehicle { + + private String make; + private String model; + private int year; + private String fuelType; + + public Vehicle(String make, String model, int year, String fuelType) { + this.make = make; + this.model = model; + this.year = year; + this.fuelType = fuelType; + } + + public Vehicle() { + } + + public String getMake() { + return make; + } + + public void setMake(String make) { + this.make = make; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public String getFuelType() { + return fuelType; + } + + public void setFuelType(String fuelType) { + this.fuelType = fuelType; + } +}