Skip to content
Snippets Groups Projects
Commit f49136f1 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Small performance optimizations -> LinkedList instead of ArrayList on lists...

Small performance optimizations -> LinkedList instead of ArrayList on lists with high frequencies of add/remove
parent d7adf02b
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ import de.unikoblenz.fgbks.base.builder.DefaultBuilder;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
......@@ -27,7 +28,7 @@ public class VerifierResult implements Serializable {
protected VerifierResult() {
super();
verifications = new ArrayList<>();
verifications = new LinkedList<>();
}
@XmlElement(name = "multiTable")
......
......@@ -25,7 +25,7 @@ public enum VerifierType {
false),
Equivalent("Checking for synonyms in columns.", EquivalentVerifier.class, true, false, false),
Overlap("Checking for overlapping rules.", OverlappingVerifier.class, true, true, false),
Missing("Checking for missing rules.", MissingVerifier.class, true, false, false),
Missing("Checking for missing rules.", MissingVerifier.class, false, false, false),
PartialReduction(
"Checking for partial reduction of rules (combination).",
PartialReductionVerifier.class,
......@@ -41,31 +41,31 @@ public enum VerifierType {
MultiTableIdentical(
"Checking for identical rules in multiple tables with identical outcome column.",
MultiTableIdenticalVerifier.class,
true,
false,
true,
true),
MultiTableOverlapping(
"Checking for overlapping rules in multiple tables with identical outcome column.",
MultiTableOverlappingVerifier.class,
true,
false,
true,
true),
MultiTableSubsumption(
"Checking for subsumptions in multiple tables with identical outcome column.",
MultiTableSubsumptionVerifier.class,
true,
false,
true,
true),
MultiTableEquivalent(
"Checking for synonyms in columns in multiple tables with identical outcome column.",
MultiTableEquivalentVerifier.class,
true,
false,
false,
true),
MultiTablePartialReduction(
"Checking for partial reduction of rules (combination) in multiple tables with identical outcome column.",
MultiTablePartialReductionVerifier.class,
true,
false,
false,
true);
......
......@@ -7,6 +7,7 @@ import de.unikoblenz.fgbks.dmn.core.models.RuleIdentifier;
import de.unikoblenz.fgbks.dmn.core.models.VerificationResult;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
......@@ -63,7 +64,7 @@ public class MissingVerifier extends AbstractVerifier {
private void checkForMissingRules(
List<Type> inputs, List<Value> values, List<Value[]> missingRules) {
// search the missing rules, which are in contact with the current rule
List<Value[]> inContactRules = new ArrayList<>();
List<Value[]> inContactRules = new LinkedList<>();
for (Value[] missingRule : missingRules) {
if (isInContact(missingRule, values)) {
inContactRules.add(missingRule);
......@@ -72,7 +73,7 @@ public class MissingVerifier extends AbstractVerifier {
// remove found rules from current missingRules
missingRules.removeAll(inContactRules);
// Build new missing rules from in contact rules
List<Value[]> newMissingRules = new ArrayList<>();
List<Value[]> newMissingRules = new LinkedList<>();
for (Value[] missingRuleValues : inContactRules) {
newMissingRules.addAll(constructNewMissingRules(inputs, missingRuleValues, values));
}
......@@ -92,7 +93,7 @@ public class MissingVerifier extends AbstractVerifier {
private List<Value[]> constructNewMissingRules(
List<Type> inputs, Value[] missingRuleValues, List<Value> values) {
List<Value[]> newMissingRules = new ArrayList<>();
List<Value[]> newMissingRules = new LinkedList<>();
for (int i = 0; i < missingRuleValues.length; i++) {
// change bound for i-1
if (i != 0) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment