All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.automatalib.commons.smartcollections.SmartDynamicPriorityQueue Maven / Gradle / Ivy

Go to download

This artifact provides efficient implementations for various collection data structures (esp. linked lists and priority queues), which have very insufficient implementation in the Java Collections Framework that makes it hard or even impossible to exploit their efficiencies.

There is a newer version: 0.11.0
Show newest version
/* Copyright (C) 2013-2018 TU Dortmund
 * This file is part of AutomataLib, http://www.automatalib.net/.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package net.automatalib.commons.smartcollections;

import java.util.Comparator;
import java.util.PriorityQueue;

/**
 * A priority queue interface.
 * 

* A priority queue is a queue which supports removal of the element with the minimal key value (wrt. natural ordering * or an explicitly specified {@link Comparator}). *

* This interface extends the functionality of the standard {@link PriorityQueue} in the way that it allows dynamic * behavior: The ordering of the elements in the queue is allowed to change. The only restriction is that whenever the * key which is used for comparison changes, the method {@link #keyChanged(ElementReference)} has to be called with the * reference of the respective element. * * @param * element class. * * @author Malte Isberner */ public interface SmartDynamicPriorityQueue extends SmartPriorityQueue { /** * Notifies the implementation that the key of an element has changed. * * @param reference * the reference for the element whose key has changed. */ void keyChanged(ElementReference reference); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy