- 1
- 2
IntStream.range(1, userScores.size() + 1)
.forEach(position -> userScores.get(position - 1).setPosition(position));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IntStream.range(1, userScores.size() + 1)
.forEach(position -> userScores.get(position - 1).setPosition(position));
Converting from 0 based array to 1 based array (for some reason).
+1
package literatePrimes;
import java.util.ArrayList;
public class PrimeGenerator {
private static int[] primes;
private static ArrayList<Integer> multiplesOfPrimeFactors;
protected static int[] generate(int n) {
primes = new int[n];
multiplesOfPrimeFactors = new ArrayList<Integer>();
set2AsFirstPrime();
checkOddNumbersForSubsequentPrimes();
return primes;
}
private static void set2AsFirstPrime() {
primes[0] = 2;
multiplesOfPrimeFactors.add(2);
}
private static void checkOddNumbersForSubsequentPrimes() {
int primeIndex = 1;
for (int candidate = 3;
primeIndex < primes.length;
candidate += 2) {
if (isPrime(candidate))
primes[primeIndex++] = candidate;
}
}
private static boolean isPrime(int candidate) {
if (isLeastRelevantMultipleOfNextLargerPrimeFactor(candidate)) {
multiplesOfPrimeFactors.add(candidate);
return false;
}
return isNotMultipleOfAnyPreviousPrimeFactor(candidate);
}
private static boolean
isLeastRelevantMultipleOfNextLargerPrimeFactor(int candidate) {
int nextLargerPrimeFactor = primes[multiplesOfPrimeFactors.size()];
int leastRelevantMultiple = nextLargerPrimeFactor * nextLargerPrimeFactor;
return candidate == leastRelevantMultiple;
}
private static boolean
isNotMultipleOfAnyPreviousPrimeFactor(int candidate) {
for (int n = 1; n < multiplesOfPrimeFactors.size(); n++) {
if (isMultipleOfNthPrimeFactor(candidate, n))
return false;
}
return true;
}
private static boolean
isMultipleOfNthPrimeFactor(int candidate, int n) {
return
candidate == smallestOddNthMultipleNotLessThanCandidate(candidate, n);
}
private static int
smallestOddNthMultipleNotLessThanCandidate(int candidate, int n) {
int multiple = multiplesOfPrimeFactors.get(n);
while (multiple < candidate)
multiple += 2 * primes[n];
multiplesOfPrimeFactors.set(n, multiple);
return multiple;
}
}
https://habr.com/ru/post/508876/
Вероятно, хватит рекомендовать «Чистый код»
> Я остановлюсь на ещё одном вопиющем примере кода. Это генератор простых чисел из главы 8:
+1
class Values<T> {
T data;
Values() {}
Values(T data) {this.setData(data);}
public void setData(T data) {this.data = data;}
public T getData() {return this.data;}
}
public class Main {
public static void main(String[] args) {
Values[][] item = new Values[3][2];
item[0][0] = new Values("grapes");
item[0][1] = new Values(1);
item[1][0] = new Values("apples");
item[1][1] = new Values(1);
item[2][0] = new Values("peaches");
item[2][1] = new Values(1);
}
}
>>> кто меня интервьюировал на позицию Staff Engineer? Junior?
>>>
1. Если покупатель купит больше одного яблока,
то он получит скидку 20% на все яблоки в корзине;
2. Если покупатель купит пакет винограда, то второй пакет
он получит бесплатно.
Итог: посчитать стоимость корзины покупателя при выходе из магазина,
при то, что данные даны в следующем виде:
[["grapes", 1],["apples", 0],["peaches", 1]] => 12
[["grapes", 1],["apples", 1],["peaches", 1]] => 15 ...
0
private String getStringDelimitedNullByte(Collection<String> stringList){
byte delimiter = (byte) 0;
int numBytes = 0;
int index = 0;
List<Byte> byteList = new ArrayList<>();
int stringListsize = stringList.size();
for (String str : stringList) {
numBytes += str.getBytes().length;
}
for (String str : stringList) {
byte[] currentByteArr = str.getBytes();
for (byte b : currentByteArr) {
byteList.add(b);
}
index++;
if (index < stringListsize) byteList.add(delimiter);
}
Byte[] byteArr = byteList.toArray(new Byte[numBytes]);
return new String(ArrayUtils.toPrimitive(byteArr));
}
0
public class FloatDynamicArray implements DynamicArray {
private int arrayLength;
private int countOfValues;
private float[] dataArray;
public FloatDynamicArray(int arrayLength) {
this.arrayLength = arrayLength;
dataArray = new float[arrayLength];
}
public long getLongValue(int index) {
throw new IllegalAccessError("Cannot get long value from FloatDynamicArray !");
}
public float getFloatValue(int index) {
return dataArray[index];
}
...
...
...
зачем делать отдельный метод getLongValue, который возбуждает исключение IllegalAccessError, когда мы заведомо знаем что это FloatDynamicArray, содержащий float[] значения ?
+6
public Page<DispatchSchedule>findBySalesOrderItemSalesOrderOrderDateBetween(Date startDate, Date endDate, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderOrderDateBetween(startDate, endDate, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderOrderDateAndJob(Date date, Job job, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderOrderDateAndJob(date, job, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderOrderDateBetweenAndJob(Date startDate, Date endDate, Job job, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderOrderDateBetweenAndJob(startDate, endDate, job, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateBetween(Customer customer, Date startDate, Date endDate, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateBetween(customer, startDate, endDate, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateAndJob(Customer customer, Date date, Job job, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateAndJob(customer, date, job, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(Customer customer, Date startDate, Date endDate, Job job, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderCustomerAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(customer, startDate, endDate, job, pageable);
}
Page<DispatchSchedule> findBySalesOrderItemSalesOrderCustomer(Customer customer, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderCustomer(customer, pageable);
}
Page<DispatchSchedule> findByJob(Job job, Pageable pageable) {
return repository.findByJob(job, pageable);
}
public Page<DispatchSchedule> findByJobItemAndSalesOrderItemSalesOrderOrderDateBetween(Item item, Date startDate, Date endDate, Pageable pageable) {
return repository.findByJobItemAndSalesOrderItemSalesOrderOrderDateBetween(item, startDate, endDate, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetween(SalesOrderType salesOrderType, Date startDate, Date endDate, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetween(salesOrderType, startDate, endDate, pageable);
}
public Page<DispatchSchedule> findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(Item item, Date startDate, Date endDate, Job job, Pageable pageable) {
return repository.findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(item, startDate, endDate, job, pageable);
}
public Page<DispatchSchedule> findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderSalesOrderType(Item item, Date startDate, Date endDate, SalesOrderType salesOrderType, Pageable pageable) {
return repository.findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderSalesOrderType(item, startDate, endDate, salesOrderType, pageable);
}
public Page<DispatchSchedule> findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderCustomer(Item item, Date startDate, Date endDate, Customer customer, Pageable pageable) {
return repository.findByJobItemAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderCustomer(item, startDate, endDate, customer, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(SalesOrderType salesOrderType, Date startDate, Date endDate, Job job, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetweenAndJob(salesOrderType, startDate, endDate, job, pageable);
}
public Page<DispatchSchedule> findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderCustomer(SalesOrderType salesOrderType, Date startDate, Date endDate, Customer customer, Pageable pageable) {
return repository.findBySalesOrderItemSalesOrderSalesOrderTypeAndSalesOrderItemSalesOrderOrderDateBetweenAndSalesOrderItemSalesOrderCustomer(salesOrderType, startDate, endDate, customer, pageable);
}
Можно мне травы, которую курили эти ребята :D
Ссылка на репо:
https://github.com/thilina01/file-manager-api/blob/25a771ac0c1940408fb7c7f021d63ef30b2af891/src/main/java/com/trendsmixed/fma/module/dispatchschedule/DispatchScheduleService.java
0
https://i.postimg.cc/7Z5pfXKj/gavno.png
--Существует ли функция с такими перегрузками, что у всякого, кто ее использует, возникает желание повести автора этой функции?
--Конечно, лови
−1
private static final String NOTHING = "";
0
if (Boolean.TRUE.equals(planItem.isIgnoredPurchase()))
{
0
public class Main {
public static void uh() {
try {
} catch (Exception e) {
throw e;
}
}
// <no errors>
public static void oh() {
try {
throw new RuntimeException();
} catch (Exception e) {
throw e;
}
}
// <no errors>
public static void snap() {
try {
throw new Exception();
} catch (Exception e) {
throw e;
}
}
// /tmp/Main.java:8: error: unreported exception Exception; must be caught or declared to be thrown
// throw e;
// ^
// 1 error
}
Где-то посередке между хорошим inference и остутствием интуитивности