List of usage examples for java.util LinkedList add
public boolean add(E e)
From source file:com.bmwcarit.barefoot.roadmap.Route.java
/** * Creates a {@link Route} object from its JSON representation. * * @param json JSON representation of the {@link Route}. * @param map {@link RoadMap} object as the reference of {@link RoadPoint}s and {@link Road}s. * @return {@link Route} object./*from ww w . j a v a2 s . c o m*/ * @throws JSONException thrown on JSON extraction or parsing error. */ public static Route fromJSON(JSONObject json, RoadMap map) throws JSONException { LinkedList<Road> roads = new LinkedList<>(); JSONObject jsontarget = json.getJSONObject("target"); JSONObject jsonsource = json.getJSONObject("source"); RoadPoint target = RoadPoint.fromJSON(jsontarget, map); RoadPoint source = RoadPoint.fromJSON(jsonsource, map); JSONArray jsonroads = json.getJSONArray("roads"); for (int j = 0; j < jsonroads.length(); ++j) { JSONObject jsonroad = jsonroads.getJSONObject(j); roads.add(Road.fromJSON(jsonroad, map)); } return new Route(source, target, roads); }
From source file:fi.smaa.libror.MaximalVectorComputation.java
/** * Implements the Best algorithm as described in Godfrey & al., VLDB Journal, 2007. * /* w w w . j av a 2 s . c om*/ * @param mat The matrix of values (each row = 1 vector of input) * * @return Matrix containing rows from the input s.t. none are dominated */ public static RealMatrix computeBEST(RealMatrix mat) { LinkedList<RealVector> list = matrixToListOfRows(mat); LinkedList<RealVector> results = new LinkedList<RealVector>(); while (list.size() > 0) { Iterator<RealVector> iter = list.iterator(); RealVector b = iter.next(); // Get the first iter.remove(); while (iter.hasNext()) { // Find a max RealVector t = iter.next(); if (dominates(b, t)) { iter.remove(); } else if (dominates(t, b)) { iter.remove(); b = t; } } results.add(b); iter = list.iterator(); while (iter.hasNext()) { // Clean up RealVector t = iter.next(); if (dominates(b, t)) { iter.remove(); } } } return listOfRowsToMatrix(results); }
From source file:io.hops.common.INodeUtil.java
public static boolean resolvePathWithNoTransaction(String path, boolean resolveLink, LinkedList<INode> preTxResolvedINodes) throws UnresolvedPathException, StorageException, TransactionContextException { preTxResolvedINodes.clear();// w w w . ja v a 2 s .c o m byte[][] components = INode.getPathComponents(path); INode curNode = getRoot(); preTxResolvedINodes.add(curNode); if (components.length == 1) { return false; } INodeResolver resolver = new INodeResolver(components, curNode, resolveLink, false); while (resolver.hasNext()) { curNode = resolver.next(); if (curNode != null) { preTxResolvedINodes.add(curNode); } } return preTxResolvedINodes.size() == components.length; }
From source file:at.bitfire.davdroid.mirakel.resource.LocalCalendar.java
public static LocalCalendar[] findAll(Account account, ContentProviderClient providerClient, Context ctx) throws RemoteException { @Cleanup/*ww w. j a v a 2s .c om*/ Cursor cursor = providerClient.query(calendarsURI(account), new String[] { Calendars._ID, Calendars.NAME }, Calendars.DELETED + "=0 AND " + Calendars.SYNC_EVENTS + "=1", null, null); LinkedList<LocalCalendar> calendars = new LinkedList<LocalCalendar>(); while (cursor != null && cursor.moveToNext()) calendars.add(new LocalCalendar(account, providerClient, cursor.getInt(0), cursor.getString(1), ctx)); return calendars.toArray(new LocalCalendar[0]); }
From source file:com.projity.script.object.TimeIntervals.java
public static int generateWindows(int scale, long ref, long start, long end, int winCount, LinkedList<TimeWindow> windows) { TimeWindow win, lastWin = null;// www .j a v a 2 s . co m if (winCount > 0) { for (int i = 0; i <= winCount; i++) { win = generateWindow(ref, scale, 1); //if (win.getS()>end) return i; if (lastWin != null) { lastWin.setE(win.getS()); windows.add(lastWin); } ref = win.getE(); lastWin = win; } } else { for (int i = 0; i >= winCount; i--) { win = generateWindow(ref, scale, -1); //if (win.getE()<start) return i; if (lastWin != null) { lastWin.setS(win.getE()); windows.addFirst(lastWin); } ref = win.getS(); lastWin = win; } } return winCount; }
From source file:com.cloud.agent.resource.virtualnetwork.ConfigHelper.java
private static List<ConfigItem> generateConfig(BumpUpPriorityCommand cmd) { LinkedList<ConfigItem> cfg = new LinkedList<>(); cfg.add(new ScriptConfigItem(VRScripts.RVR_BUMPUP_PRI, null)); return cfg;/*from w w w .j a v a 2s .co m*/ }
From source file:io.hops.common.INodeUtil.java
private static void readFromLeafToRoot(INode inode, LinkedList<INode> list) throws StorageException { INode temp = inode;//from ww w . j a v a2s . co m while (temp != null && temp.getParentId() != INodeDirectory.ROOT_PARENT_ID) { temp = indexINodeScanById(temp.getParentId()); // all upper components are dirs if (temp != null) { list.add(temp); } } }
From source file:de._13ducks.cor.game.server.movement.SubSectorPathfinder.java
/** * Sucht einen Weg auf Freiflchen (FreePolygon) um ein Hindernis herum. * Beachtet weitere Hindernisse auf der "Umleitung". * Sucht die Route nur bis zum nchsten Ziel. * Der Mover darf sich nicht bereits auf einer Umleitung befinden, * diese muss ggf vorher gelscht worden sein. * @param mover//from w ww. j a va 2s. c o m * @param obstacle * @return */ static List<SubSectorEdge> searchDiversion(Moveable mover, Moveable obstacle, SimplePosition target) { // Vorberprfung: Ist das Ziel berhaupt noch frei? List<Moveable> moversAroundTarget = Server.getInnerServer().moveMan.moveMap .moversAroundPoint(target.toFPP(), mover.getRadius() + 5); moversAroundTarget.remove(mover); // Falls drin for (Moveable m : moversAroundTarget) { if (m.getPrecisePosition().getDistance(target.toFPP()) < m.getRadius() + mover.getRadius() + ServerBehaviourMove.MIN_DISTANCE) { System.out.println("No div, target blocked!"); return null; } } /** * Wegsuche in 2 Schritten: * 1. Aufbauen eines geeigneten Graphen, der das gesamte Problem enthlt. * 2. Suchen einer Route in diesem Graphen mittels A* (A-Star). */ // Aufbauen des Graphen: ArrayList<SubSectorObstacle> graph = new ArrayList<SubSectorObstacle>(); // Der Graph selber LinkedList<Moveable> openObstacles = new LinkedList<Moveable>(); // Die Liste mit noch zu untersuchenden Knoten ArrayList<Moveable> closedObstacles = new ArrayList<Moveable>(); // Bearbeitete Knoten openObstacles.add(obstacle); // Startpunkt des Graphen. closedObstacles.add(mover); // Wird im Graphen nicht mitbercksichtigt. double radius = mover.getRadius() + ServerBehaviourMove.MIN_DISTANCE; while (!openObstacles.isEmpty()) { // Neues Element aus der Liste holen und als bearbeitet markieren. Moveable work = openObstacles.poll(); closedObstacles.add(work); SubSectorObstacle next = new SubSectorObstacle(work.getPrecisePosition().x(), work.getPrecisePosition().y(), work.getRadius()); // Zuerst alle Punkte des Graphen lschen, die jetzt nichtmehr erreichbar sind: for (SubSectorObstacle obst : graph) { obst.removeNearNodes(next, radius); } // Mit Graph vernetzen for (SubSectorObstacle node : graph) { if (node.inColRange(next, radius)) { // Schnittpunkte suchen SubSectorNode[] intersections = node.calcIntersections(next, radius); for (SubSectorNode n2 : intersections) { boolean reachable = true; for (SubSectorObstacle o : graph) { if (o.equals(node)) { continue; // Um den gehts jetzt ja gerade, natrlich liegen wir auf diesem Kreis } if (o.moveCircleContains(n2, radius)) { reachable = false; break; } } if (reachable) { // Schnittpunkt einbauen next.addNode(n2); node.addNode(n2); } } } } // Bearbeitetes selbst in Graph einfgen graph.add(next); // Weitere Hindernisse suchen, die jetzt relevant sind. List<Moveable> moversAround = Server.getInnerServer().moveMan.moveMap.moversAround(work, (work.getRadius() + radius) * 2); for (Moveable pmove : moversAround) { if (!closedObstacles.contains(pmove) && !openObstacles.contains(pmove)) { openObstacles.add(pmove); } } } // Jetzt drber laufen und Graph aufbauen: for (SubSectorObstacle obst : graph) { // Vorgensweise: // In jedem Hinderniss die Linie entlanglaufen und Knoten mit Kanten verbinden. // Ein Knoten darf auf einem Kreis immer nur in eine Richtung gehen. // (das sollte mithilfe seiner beiden, bekannten hindernisse recht einfach sein) // Die Lnge des Kreissegments lsst sich einfach mithilfe des winkels ausrechnen (Math.atan2(y,x) // Dann darf der A*. Bzw. Dijkstra, A* ist hier schon fast Overkill. // Alle Knoten ihrem Bogenma nach sortieren. obst.sortNodes(); obst.interConnectNodes(radius); } // Start- und Zielknoten einbauen und mit dem Graph vernetzten. SubSectorNode startNode = new SubSectorNode(mover.getPrecisePosition().x(), mover.getPrecisePosition().y()); SubSectorNode targetNode = new SubSectorNode(target.x(), target.y()); double min = Double.POSITIVE_INFINITY; SubSectorObstacle minObstacle = null; for (SubSectorObstacle obst : graph) { double newdist = Math.sqrt((obst.getX() - startNode.getX()) * (obst.getX() - startNode.getX()) + (obst.getY() - startNode.getY()) * (obst.getY() - startNode.getY())); newdist -= obst.getRadius() + radius; // Es interessiert uns der nchstmgliche Kreis, nicht das nchste Hinderniss if (newdist < min) { min = newdist; minObstacle = obst; } } // Punkt auf Laufkreis finden Vector direct = new Vector(startNode.getX() - minObstacle.getX(), startNode.getY() - minObstacle.getY()); direct = direct.normalize().multiply(minObstacle.getRadius() + radius); SubSectorNode minNode = new SubSectorNode(minObstacle.getX() + direct.getX(), minObstacle.getY() + direct.getY(), minObstacle); // In das Hinderniss integrieren: minObstacle.lateIntegrateNode(minNode); SubSectorEdge startEdge = new SubSectorEdge(startNode, minNode, min); if (!startNode.equals(minNode)) { startNode.addEdge(startEdge); minNode.addEdge(startEdge); } else { // Wir stehen schon auf dem minNode. // Die Einsprungkante ist nicht notwendig. startNode = minNode; } double min2 = Double.POSITIVE_INFINITY; SubSectorObstacle minObstacle2 = null; for (SubSectorObstacle obst : graph) { double newdist = Math.sqrt((obst.getX() - targetNode.getX()) * (obst.getX() - targetNode.getX()) + (obst.getY() - targetNode.getY()) * (obst.getY() - targetNode.getY())); newdist -= obst.getRadius() + radius; // Es interessiert uns der nchstmgliche Kreis, nicht das nchste Hinderniss if (newdist < min2) { min2 = newdist; minObstacle2 = obst; } } // Punkt auf Laufkreis finden Vector direct2 = new Vector(targetNode.getX() - minObstacle2.getX(), targetNode.getY() - minObstacle2.getY()); direct2 = direct2.normalize().multiply(minObstacle2.getRadius() + radius); SubSectorNode minNode2 = new SubSectorNode(minObstacle2.getX() + direct2.getX(), minObstacle2.getY() + direct2.getY(), minObstacle2); // In das Hinderniss integrieren: minObstacle2.lateIntegrateNode(minNode2); SubSectorEdge targetEdge = new SubSectorEdge(minNode2, targetNode, min2); if (!targetNode.equals(minNode2)) { targetNode.addEdge(targetEdge); minNode2.addEdge(targetEdge); } else { // Das Ziel ist schon auf dem Laufkreis. // Die Aussprungkante ist nicht ntig. targetNode = minNode2; } /** * Hier jetzt einen Weg suchen von startNode nach targetNode. * Die Kanten sind in node.myEdges * Die Ziele bekommt man mit edge.getOther(startNode) * Die Lnge (Wegkosten) stehen in edge.length (vorsicht: double-Wert!) */ PriorityBuffer open = new PriorityBuffer(); // Liste fr entdeckte Knoten LinkedHashSet<SubSectorNode> containopen = new LinkedHashSet<SubSectorNode>(); // Auch fr entdeckte Knoten, hiermit kann viel schneller festgestellt werden, ob ein bestimmter Knoten schon enthalten ist. LinkedHashSet<SubSectorNode> closed = new LinkedHashSet<SubSectorNode>(); // Liste fr fertig bearbeitete Knoten double cost_t = 0; //Movement Kosten (gerade 5, diagonal 7, wird spter festgelegt) open.add(startNode); while (open.size() > 0) { SubSectorNode current = (SubSectorNode) open.remove(); containopen.remove(current); if (current.equals(targetNode)) { //Abbruch, weil Weg von Start nach Ziel gefunden wurde //targetNode.setParent(current.getParent()); //"Vorgngerfeld" von Ziel bekannt break; } // Aus der open wurde current bereits gelscht, jetzt in die closed verschieben closed.add(current); ArrayList<SubSectorEdge> neighbors = current.getMyEdges(); for (SubSectorEdge edge : neighbors) { SubSectorNode node = edge.getOther(current); if (closed.contains(node)) { continue; } // Kosten dort hin berechnen cost_t = edge.getLength(); if (containopen.contains(node)) { //Wenn sich der Knoten in der openlist befindet, muss berechnet werden, ob es einen krzeren Weg gibt if (current.getCost() + cost_t < node.getCost()) { //krzerer Weg gefunden? node.setCost(current.getCost() + cost_t); //-> Wegkosten neu berechnen //node.setValF(node.cost + node.getHeuristic()); //F-Wert, besteht aus Wegkosten vom Start + Luftlinie zum Ziel node.setParent(current); //aktuelles Feld wird zum Vorgngerfeld } } else { node.setCost(current.getCost() + cost_t); //node.setHeuristic(Math.sqrt(Math.pow(Math.abs((targetNode.getX() - node.getX())), 2) + Math.pow(Math.abs((targetNode.getY() - node.getY())), 2))); // geschtzte Distanz zum Ziel //Die Zahl am Ende der Berechnung ist der Aufwand der Wegsuche //5 ist schnell, 4 normal, 3 dauert lange node.setParent(current); // Parent ist die RogPosition, von dem der aktuelle entdeckt wurde //node.setValF(node.cost + node.getHeuristic()); //F-Wert, besteht aus Wegkosten vom Start aus + Luftlinie zum Ziel open.add(node); // in openlist hinzufgen containopen.add(node); } } } if (targetNode.getParent() == null) { //kein Weg gefunden return null; } ArrayList<SubSectorNode> pathrev = new ArrayList<SubSectorNode>(); //Pfad aus parents erstellen, von Ziel nach Start while (!targetNode.equals(startNode)) { pathrev.add(targetNode); targetNode = targetNode.getParent(); } pathrev.add(startNode); ArrayList<SubSectorNode> path = new ArrayList<SubSectorNode>(); //Pfad umkehren, sodass er von Start nach Ziel ist for (int k = pathrev.size() - 1; k >= 0; k--) { path.add(pathrev.get(k)); } // Nachbearbeitung: // Wir brauchen eine Kanten-Liste mit arc/direct Informationen ArrayList<SubSectorEdge> finalPath = new ArrayList<SubSectorEdge>(); for (int i = 0; i < path.size() - 1; i++) { SubSectorNode from = path.get(i); SubSectorNode to = path.get(i + 1); SubSectorEdge edge = shortestCommonEdge(from, to); if (edge != null) { finalPath.add(edge); } else { throw new RuntimeException("ERROR Cannot find edge from " + from + " to " + to + " but it is part of the calculated path!!!"); } } return finalPath; //Pfad zurckgeben }
From source file:cascading.ComparePlatformsTest.java
private static void createComparisons(String comparison, File lhsRoot, File rhsRoot, TestSuite suite) { LOG.info("comparing directory: {}, with: {}", lhsRoot, rhsRoot); LinkedList<File> lhsFiles = new LinkedList<File>( FileUtils.listFiles(lhsRoot, new RegexFileFilter("^[\\w-]+"), TrueFileFilter.INSTANCE)); LinkedList<File> rhsFiles = new LinkedList<File>(); LOG.info("found lhs files: {}", lhsFiles.size()); int rootLength = lhsRoot.toString().length() + 1; ListIterator<File> iterator = lhsFiles.listIterator(); while (iterator.hasNext()) { File localFile = iterator.next(); File file = new File(rhsRoot, localFile.toString().substring(rootLength)); if (localFile.toString().endsWith(NONDETERMINISTIC)) iterator.remove();/*from w w w . j av a2 s .c o m*/ else if (file.exists()) rhsFiles.add(file); else iterator.remove(); } LOG.info("running {} comparisons", lhsFiles.size()); for (int i = 0; i < lhsFiles.size(); i++) { File localFile = lhsFiles.get(i); File hadoopFile = rhsFiles.get(i); suite.addTest(new CompareTestCase(comparison, localFile, hadoopFile)); } }
From source file:com.splout.db.common.GetIPAddresses.java
/** * Returns all available IP addresses.//from w w w .j a v a2 s .c o m * <p/> * In error case or if no network connection is established, we return an empty list here. * <p/> * Loopback addresses are excluded - so 127.0.0.1 will not be never returned. * <p/> * The "primary" IP might not be the first one in the returned list. * * @return Returns all IP addresses (can be an empty list in error case or if network connection is missing). * @throws SocketException * @since 0.1.0 */ public static Collection<InetAddress> getAllLocalIPs() throws SocketException { LinkedList<InetAddress> listAdr = new LinkedList<InetAddress>(); Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces(); if (nifs == null) return listAdr; while (nifs.hasMoreElements()) { NetworkInterface nif = nifs.nextElement(); // We ignore subinterfaces - as not yet needed. Enumeration<InetAddress> adrs = nif.getInetAddresses(); while (adrs.hasMoreElements()) { InetAddress adr = adrs.nextElement(); if (adr != null && !adr.isLoopbackAddress() && (nif.isPointToPoint() || !adr.isLinkLocalAddress())) { log.info("Available site local address: " + adr); listAdr.add(adr); } } } return listAdr; }