public static LongArrayList mergeSort(LongArrayList a, LongArrayList b) { int posa=0, posb=0; LongArrayList result = new LongArrayList(a.size()+b.size()); while (posa<a.size() || posb<b.size()) { long next; if (posa>=a.size()) { next=b.get(posb++); } else if (posb>=b.size()) { next=a.get(posa++); } else if (a.get(posa)<=b.get(posb)) { next=a.get(posa++); } else { next=b.get(posb++); } Preconditions.checkArgument(result.isEmpty() || result.get(result.size()-1)<=next, "The input lists are not sorted"); result.add(next); } return result; }
public static LongArrayList singleton(long el) { LongArrayList l = new LongArrayList(1); l.add(el); return l; }
@Override public VertexList subList(int fromPosition, int length) { LongArrayList subList = new LongArrayList(length); subList.add(vertices.buffer, fromPosition, length); assert subList.size()==length; return new VertexLongList(tx,subList,sorted); }
for (long id : signature) writtenTypes.add(id); LongArrayList remainingTypes = new LongArrayList(8); for (PropertyKey t : relation.getPropertyKeysDirect()) { if (!(t instanceof ImplicitKey) && !writtenTypes.contains(t.longId())) { remainingTypes.add(t.longId()); long[] remaining = remainingTypes.toArray(); Arrays.sort(remaining); for (long tid : remaining) {
public List<EntryList> edgeMultiQuery(LongArrayList vids, SliceQuery query, BackendTransaction tx) { Preconditions.checkArgument(vids != null && !vids.isEmpty()); List<StaticBuffer> vertexIds = new ArrayList<StaticBuffer>(vids.size()); for (int i = 0; i < vids.size(); i++) { Preconditions.checkArgument(vids.get(i) > 0); vertexIds.add(idManager.getKey(vids.get(i))); } Map<StaticBuffer,EntryList> result = tx.edgeStoreMultiQuery(vertexIds, query); List<EntryList> resultList = new ArrayList<EntryList>(result.size()); for (StaticBuffer v : vertexIds) resultList.add(result.get(v)); return resultList; }
public static LongArrayList mergeJoin(LongArrayList a, LongArrayList b, final boolean unique) { assert isSorted(a) : a.toString(); assert isSorted(b) : b.toString(); int counterA = 0, counterB = 0; int sizeA = a.size(); int sizeB = b.size(); LongArrayList merge = new LongArrayList(Math.min(sizeA, sizeB)); int resultSize = 0; while (counterA < sizeA && counterB < sizeB) { if (a.get(counterA) == b.get(counterB)) { long value = a.get(counterA); if (!unique) { merge.add(value); resultSize++; } else { if (resultSize <= 0 || merge.get(resultSize - 1) != value) { merge.add(value); resultSize++; } else if (a.get(counterA) < b.get(counterB)) { counterA++; } else { assert a.get(counterA) > b.get(counterB); counterB++;
if (way.getNodes().size() < 2) return; if (osmNodeIds.size() > 1) { int first = getNodeMap().get(osmNodeIds.get(0)); int last = getNodeMap().get(osmNodeIds.get(osmNodeIds.size() - 1)); double firstLat = getTmpLatitude(first), firstLon = getTmpLongitude(first); double lastLat = getTmpLatitude(last), lastLon = getTmpLongitude(last); final int size = osmNodeIds.size(); int lastBarrier = -1; for (int i = 0; i < size; i++) { long nodeId = osmNodeIds.get(i); long nodeFlags = getNodeFlagsMap().get(nodeId); LongArrayList partNodeIds = new LongArrayList(); partNodeIds.add(osmNodeIds.buffer, lastBarrier, length); partNodeIds.set(length - 1, newNodeId); createdEdges.addAll(addOSMWay(partNodeIds, wayFlags, wayOsmId)); osmNodeIds.set(0, newNodeId); LongArrayList partNodeIds = new LongArrayList(); partNodeIds.add(osmNodeIds.buffer, lastBarrier, size - lastBarrier); createdEdges.addAll(addOSMWay(partNodeIds, wayFlags, wayOsmId));
@Override public int size() { return vertices.size(); }
void processBufferedChildBuckets() throws IOException { if (bucketBuffer.isEmpty()) { return; } final int prevParentDoc = parentDocs.prevSetBit(currentParentDoc - 1); int childDocId = childDocs.docID(); if (childDocId <= prevParentDoc) { childDocId = childDocs.advance(prevParentDoc + 1); } for (; childDocId < currentParentDoc; childDocId = childDocs.nextDoc()) { cachedScorer.doc = childDocId; final long[] buffer = bucketBuffer.buffer; final int size = bucketBuffer.size(); for (int i = 0; i < size; i++) { collectBucket(sub, childDocId, buffer[i]); } } bucketBuffer.clear(); } }
private static void readNodes(ReaderWay way, XMLStreamReader parser) throws XMLStreamException { int event = parser.getEventType(); while (event != XMLStreamConstants.END_DOCUMENT && parser.getLocalName().equals("nd")) { if (event == XMLStreamConstants.START_ELEMENT) { // read node reference String ref = parser.getAttributeValue(null, "ref"); way.getNodes().add(Long.parseLong(ref)); } event = parser.nextTag(); } }
public VertexLongList(StandardTitanTx tx) { this(tx,new LongArrayList(10),true); }
LongArrayList list = new LongArrayList(); while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { if (token == XContentParser.Token.VALUE_NUMBER) { builder.primaryTerms(list.toArray()); } else { throw new IllegalArgumentException("Unexpected field for an array " + currentFieldName);
@Override public long getID(int pos) { return vertices.get(pos); }
/** * {@inheritDoc} */ @Override public void insert(int index, long e1) { assert (index >= 0 && index <= size()) : "Index " + index + " out of bounds [" + 0 + ", " + size() + "]."; ensureBufferSpace(1); System.arraycopy(buffer, index, buffer, index + 1, elementsCount - index); buffer[index] = e1; elementsCount++; }
/** * Adds all elements from another container. */ public int addAll(LongContainer container) { final int size = container.size(); ensureBufferSpace(size); for (LongCursor cursor : container) { add(cursor.value); } return size; }
@Override public VertexList subList(int fromPosition, int length) { LongArrayList subList = new LongArrayList(length); subList.add(vertices.buffer, fromPosition, length); assert subList.size()==length; return new VertexLongList(tx,subList,sorted); }