Before implementing or modifying algorithms, carefully evaluate data structure properties and operation costs. Always:
// Problematic: PriorityBlockingQueue doesn't guarantee ordering for equal priorities
private final PriorityBlockingQueue<ShutdownTask> shutdownTasks = new PriorityBlockingQueue<>();
// Better: If order matters for equal priorities, use a secondary comparison key
private final PriorityBlockingQueue<ShutdownTask> shutdownTasks =
new PriorityBlockingQueue<>(11, Comparator
.comparing(ShutdownTask::getPriority)
.thenComparing(ShutdownTask::getCreationOrder));
List.of()
implementations)// Better performance and correctness for version comparisons
new ComparableVersion("2.10.0.CR1").compareTo(new ComparableVersion(version))
These optimizations improve both performance and correctness of your code while keeping it maintainable.
Enter the URL of a public GitHub repository