Skip to content

Commit dc082de

Browse files
committed
Fix some code inspection warnings
1 parent 5186ff3 commit dc082de

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+94
-106
lines changed

Diff for: build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ description = 'java-interview-coding'
3636
java.sourceCompatibility = JavaVersion.VERSION_21
3737
java.targetCompatibility = JavaVersion.VERSION_21
3838

39-
tasks.withType(JavaCompile) {
39+
tasks.withType(JavaCompile).configureEach {
4040
options.encoding = 'UTF-8'
4141
}
4242

43-
tasks.withType(Test) {
43+
tasks.withType(Test).configureEach {
4444
testLogging {
4545
events "passed", "skipped", "failed",
4646
// "standardOut", // Uncomment to get all logs during tests execution
@@ -81,7 +81,7 @@ jacocoTestReport {
8181
}
8282
}
8383

84-
task githubWorkflowTest(type: Test) {
84+
tasks.register('githubWorkflowTest', Test) {
8585
exclude '**/**AddMultithreadingTest.class'
8686
exclude '**/**BlockingQueueTest.class'
8787
exclude '**/**DeadlockTest.class'

Diff for: src/main/java/by/andd3dfx/collections/custom/CustomLinkedList.java

+12-14
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
public class CustomLinkedList<T> implements Iterable<T> {
1111

1212
@AllArgsConstructor
13-
public class Node<T> {
14-
private T value;
15-
private Node<T> next;
13+
public static class Node<M> {
14+
private M value;
15+
private Node<M> next;
1616

1717
@Override
1818
public String toString() {
@@ -36,22 +36,20 @@ public void add(int index, T value) {
3636
}
3737

3838
if (index == 0) {
39-
var newNode = new Node(value, head);
40-
head = newNode;
39+
head = new Node<>(value, head);
4140
size++;
4241
return;
4342
}
4443

4544
int i = 1;
46-
Node prev = head;
47-
Node curr = head.next;
45+
Node<T> prev = head;
46+
Node<T> curr = head.next;
4847
while (i < index) {
4948
i++;
5049
prev = curr;
5150
curr = curr.next;
5251
}
53-
var newNode = new Node(value, curr);
54-
prev.next = newNode;
52+
prev.next = new Node<>(value, curr);
5553
size++;
5654
}
5755

@@ -152,11 +150,11 @@ public T pop() {
152150
}
153151

154152
public void reverse() {
155-
Node prev = null;
156-
Node curr = head;
153+
Node<T> prev = null;
154+
Node<T> curr = head;
157155

158156
while (curr != null) {
159-
Node next = curr.next;
157+
Node<T> next = curr.next;
160158
curr.next = prev;
161159
prev = curr;
162160
curr = next;
@@ -171,11 +169,11 @@ public void clear() {
171169

172170
@Override
173171
public Iterator<T> iterator() {
174-
return new CustomIterator(head);
172+
return new CustomIterator<>(head);
175173
}
176174

177175
@AllArgsConstructor
178-
public class CustomIterator<E> implements Iterator<E> {
176+
public static class CustomIterator<E> implements Iterator<E> {
179177
private Node<E> curr;
180178

181179
@Override

Diff for: src/main/java/by/andd3dfx/common/CountStreamers.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import lombok.Data;
55

66
import java.util.ArrayList;
7-
import java.util.Collections;
87
import java.util.Comparator;
98

109
import static by.andd3dfx.common.CountStreamers.EventType.START;
@@ -35,7 +34,7 @@ public static int count(int[][] times) {
3534
events.add(new EventItem(time[1], STOP));
3635
}
3736

38-
Collections.sort(events, Comparator.comparingInt(EventItem::getTime));
37+
events.sort(Comparator.comparingInt(EventItem::getTime));
3938

4039
var current = 0;
4140
var max = 0;

Diff for: src/main/java/by/andd3dfx/common/JoinIntervals.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5-
import java.util.stream.Collectors;
65

76
/**
87
* <pre>
@@ -52,7 +51,6 @@ public static String transform(int[] a) {
5251
items.add(String.valueOf(lastItem));
5352
}
5453

55-
return items.stream()
56-
.collect(Collectors.joining(","));
54+
return String.join(",", items);
5755
}
5856
}

Diff for: src/main/java/by/andd3dfx/common/PropertiesExtractor.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.lang.reflect.Field;
44
import java.util.ArrayList;
55
import java.util.List;
6-
import java.util.stream.Collectors;
76

87
/**
98
* Write a function that accept one argument of object type and print all values of own properties (that are not
@@ -32,7 +31,7 @@ public static String extract(Object obj) throws IllegalAccessException {
3231
result.add(extract(value));
3332
}
3433
}
35-
return result.stream().collect(Collectors.joining(" "));
34+
return String.join(" ", result);
3635
}
3736

3837
private static Object extractValue(Field field, Object obj) throws IllegalAccessException {

Diff for: src/main/java/by/andd3dfx/common/SortedSquares.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.util.Deque;
88
import java.util.List;
99
import java.util.PriorityQueue;
10-
import java.util.stream.Collectors;
1110

1211
/**
1312
* <pre>
@@ -28,7 +27,7 @@ public static Integer[] transformUsingSorting(Integer[] items) {
2827
return Arrays.stream(items)
2928
.map(integer -> integer * integer)
3029
.sorted()
31-
.collect(Collectors.toList())
30+
.toList()
3231
.toArray(new Integer[0]);
3332
}
3433

Diff for: src/main/java/by/andd3dfx/common/TrainComposition.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
public class TrainComposition {
1818

19-
private Deque<Integer> deque = new ArrayDeque<>();
19+
private final Deque<Integer> deque = new ArrayDeque<>();
2020

2121
public void attachWagonFromLeft(int wagonId) {
2222
deque.addFirst(wagonId);

Diff for: src/main/java/by/andd3dfx/common/UrlShortener.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
/**
77
* <pre>
8-
* According to https://stackoverflow.com/questions/742013/how-do-i-create-a-url-shortener/742047
8+
* According to <a href="https://stackoverflow.com/questions/742013/how-do-i-create-a-url-shortener/742047">article</a>
99
*
1010
* - Реализовать сократитель ссылок
1111
* 1. берем строку из символов англ. алфавита и цифр: abc..zABC..Z01..9 (62 символа)
@@ -66,15 +66,15 @@ public String restoreLongUrl(String shortString) {
6666
String encodePrimaryKeyToShortString(Long dbPrimaryKey) {
6767
StringBuilder sb = new StringBuilder();
6868
while (dbPrimaryKey > 0) {
69-
Long remainder = dbPrimaryKey % BASE;
70-
sb.append(ALPHABET.charAt(remainder.intValue()));
69+
long remainder = dbPrimaryKey % BASE;
70+
sb.append(ALPHABET.charAt((int) remainder));
7171
dbPrimaryKey = dbPrimaryKey / BASE;
7272
}
7373
return sb.reverse().toString();
7474
}
7575

7676
Long decodeShortStringToPrimaryKey(String shortString) {
77-
Long result = 0L;
77+
long result = 0L;
7878
for (char character : shortString.toCharArray()) {
7979
int charIndex = ALPHABET.indexOf(character);
8080
result = result * BASE + charIndex;

Diff for: src/main/java/by/andd3dfx/core/GenericClassCreation.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* <pre>
99
* Examples of object creation when it defined as generic type.
1010
*
11-
* According to: https://stackoverflow.com/questions/75175/create-instance-of-generic-type-in-java
11+
* According to <a href="https://stackoverflow.com/questions/75175/create-instance-of-generic-type-in-java">article</a>
1212
* </pre>
1313
*
1414
* @see <a href="https://youtu.be/vkn_2w-oJIo">Video solution</a>

Diff for: src/main/java/by/andd3dfx/core/creationorder/ClassA.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package by.andd3dfx.core.creationorder;
22

3+
import lombok.Getter;
4+
35
import java.util.ArrayList;
46
import java.util.List;
57

68
public class ClassA {
79

10+
@Getter
811
protected static List<String> logs = new ArrayList<>();
9-
private int value = 100;
12+
private final int value = 100;
1013

1114
{
1215
logs.add("A1 Usual block of class A, " + value);
@@ -24,8 +27,4 @@ public ClassA() {
2427
public void showValue() {
2528
logs.add("A4 Call of class A method, " + value);
2629
}
27-
28-
public static List<String> getLogs() {
29-
return logs;
30-
}
3130
}

Diff for: src/main/java/by/andd3dfx/core/predict/DangerousCasting.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static void main(String[] args) {
2323
var bonus = ((Manager)list.get(0)).getBonus();
2424
System.out.println(bonus);
2525

26-
/**
26+
/*
2727
* Во время выполнения в 4й строке вывалится ClassCastException.
2828
* Но такой каст бы прошел: ((Manager)list.get(0)).getBonus()
2929
*/

Diff for: src/main/java/by/andd3dfx/core/predict/ImmutableString.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static void main(String[] args) {
1616
string.concat(" World");
1717
System.out.println(string);
1818

19-
/**
19+
/*
2020
* Будет выведено только 'Hello', т.к. String - immutable,
2121
* и результат вызова concat() попадет в другую строку,
2222
* которую никакой переменной не присвоили

Diff for: src/main/java/by/andd3dfx/core/predict/Inheritance.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class Inheritance {
3232
public static void main(String[] args) {
3333
var b = new B();
3434

35-
/**
35+
/*
3636
* Выведется: 0, потом 2, т.к. при вызове конструктора класса A вызовется (из-за полиморфизма)
3737
* метод getA() класса B, который выведет значение переменной a, к тому моменту еще неинициализированной.
3838
*/

Diff for: src/main/java/by/andd3dfx/core/predict/NoTerminalOpOnStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static void main(String[] args) {
3030
Stream<String> stream = Stream.of("foo", "bar", "foo", "bar");
3131
Stream<String> result = bar(stream);
3232

33-
/**
33+
/*
3434
* Кажется, что будет выведено 'foofoo', но на стриме не вызвана терминальная операция,
3535
* поэтому будет выведена только надпись `start bar`.
3636
*/

Diff for: src/main/java/by/andd3dfx/dynamic/BestTimeToBuyNSellStock.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ public int maxProfit_ON2(int[] prices) {
4242
public int maxProfit_ON(int[] prices) {
4343
int minPrice = Integer.MAX_VALUE;
4444
int maxProfit = 0;
45-
for (int i = 0; i < prices.length; i++) {
46-
if (prices[i] < minPrice) {
47-
minPrice = prices[i];
48-
} else if (prices[i] - minPrice > maxProfit) {
49-
maxProfit = prices[i] - minPrice;
45+
for (int price : prices) {
46+
if (price < minPrice) {
47+
minPrice = price;
48+
} else if (price - minPrice > maxProfit) {
49+
maxProfit = price - minPrice;
5050
}
5151
}
5252
return maxProfit;

Diff for: src/main/java/by/andd3dfx/dynamic/ChangeWithMinNumberOfCoins.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525
public class ChangeWithMinNumberOfCoins {
2626

27-
public static int determine_usingRecursion(int coins[], int amount) {
27+
public static int determine_usingRecursion(int[] coins, int amount) {
2828
Arrays.sort(coins);
2929
var result = innerRecursion(coins, amount);
3030

@@ -56,7 +56,7 @@ private static int innerRecursion(int[] coins, int amount) {
5656
return result;
5757
}
5858

59-
public static int determine_usingMemoization(int coins[], int amount) {
59+
public static int determine_usingMemoization(int[] coins, int amount) {
6060
// The minCoins[i] will be storing the minimum number of coins required for `i` value.
6161
// So minCoins[amount] will have a result
6262
int[] minCoins = new int[amount + 1];

Diff for: src/main/java/by/andd3dfx/dynamic/RestoreIPAddress.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private void solve(String s, List<String> result, String tmp, int numbersAmount)
5353
if (substring.matches("^0+\\d+")) {
5454
continue;
5555
}
56-
var number = Integer.valueOf(substring);
56+
var number = Integer.parseInt(substring);
5757
if (number <= 255) {
5858
solve(s.substring(i), result, tmp + "." + number, numbersAmount + 1);
5959
}

Diff for: src/main/java/by/andd3dfx/dynamic/Stories.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
*/
2828
public class Stories {
2929

30-
private static Map<Integer, Integer> cache = new HashMap<>();
30+
private static final Map<Integer, Integer> cache = new HashMap<>();
3131

3232
public static int combinations(int numberOfStories) {
3333
return fibonacci(numberOfStories + 1);

Diff for: src/main/java/by/andd3dfx/iterators/EvenIterator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
public class EvenIterator implements Iterator<Integer> {
1818

1919
private final Iterator<Integer> it;
20-
private Deque<Integer> stack = new ArrayDeque<>();
20+
private final Deque<Integer> stack = new ArrayDeque<>();
2121

2222
@Override
2323
public Integer next() {

Diff for: src/main/java/by/andd3dfx/iterators/RecursiveIterator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818
public class RecursiveIterator<Object> implements Iterator<Object> {
1919

20-
private Deque<Iterator<Object>> stack = new ArrayDeque<>();
20+
private final Deque<Iterator<Object>> stack = new ArrayDeque<>();
2121

2222
public RecursiveIterator(Iterator<Object> iterator) {
2323
stack.push(iterator);

Diff for: src/main/java/by/andd3dfx/multithreading/Deadlock.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import lombok.AllArgsConstructor;
44

55
/**
6-
* Example from JDK: http://docs.oracle.com/javase/tutorial/essential/concurrency/deadlock.html
6+
* <a href="http://docs.oracle.com/javase/tutorial/essential/concurrency/deadlock.html">Example</a> from JDK
77
*
88
* @see <a href="https://youtu.be/xuWU_6JTXi4">Video solution</a>
99
*/

Diff for: src/main/java/by/andd3dfx/multithreading/GenerateNumbers.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public GenerateNumbers() {
1818
pool = Executors.newFixedThreadPool(4);
1919
}
2020

21-
public class RandomGeneratorTask implements Runnable {
21+
public static class RandomGeneratorTask implements Runnable {
2222
@Override
2323
public void run() {
2424
for (int i = 0; i < 5; i++) { //Should be 250_000 here

Diff for: src/main/java/by/andd3dfx/multithreading/HowToStartMultipleTasks.java

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import lombok.extern.slf4j.Slf4j;
44

5-
import java.util.List;
65
import java.util.concurrent.CompletableFuture;
76
import java.util.concurrent.ExecutionException;
87
import java.util.concurrent.ForkJoinTask;

Diff for: src/main/java/by/andd3dfx/multithreading/executor/CustomThreadPoolExecutor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* TaskExecutor will be responsible for executing tasks.
1313
* TaskExecutor exposes method submit() which will be called by task generating program, to submit a task.
1414
*
15-
* Based on http://www.makeinjava.com/custom-thread-pool-example-without-using-executor-framework/
15+
* Based on <a href="http://www.makeinjava.com/custom-thread-pool-example-without-using-executor-framework/">article</a>
1616
* </pre>
1717
*
1818
* @see <a href="https://youtu.be/FmJasJ-W-Rs">Video solution</a>

Diff for: src/main/java/by/andd3dfx/multithreading/forkjoin/CustomRecursiveAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.util.logging.Logger;
88

99
/**
10-
* Based on article https://www.baeldung.com/java-fork-join
10+
* Based on <a href="https://www.baeldung.com/java-fork-join">article</a>
1111
*/
1212
public class CustomRecursiveAction extends RecursiveAction {
1313

Diff for: src/main/java/by/andd3dfx/multithreading/forkjoin/CustomRecursiveTask.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
import java.util.logging.Logger;
88

99
/**
10-
* Based on article https://www.baeldung.com/java-fork-join
10+
* Based on <a href="https://www.baeldung.com/java-fork-join">article</a>
1111
*/
1212
public class CustomRecursiveTask extends RecursiveTask<Integer> {
1313

14-
private static Logger logger = Logger.getLogger(CustomRecursiveTask.class.getName());
14+
private static final Logger logger = Logger.getLogger(CustomRecursiveTask.class.getName());
1515

1616
private static final int LENGTH_THRESHOLD = 4;
1717
private int[] arr;

0 commit comments

Comments
 (0)