Java 如何使用DataAccess在GraphHopper中存储长整型映射

Java 如何使用DataAccess在GraphHopper中存储长整型映射,java,bitwise-operators,graphhopper,Java,Bitwise Operators,Graphhopper,我发现: 在本示例中,它使用DataAccess存储EdgeId(Int)->OSMWayId(Long)映射, 然而,我想反过来做,使用OSMWayId(Long)作为键,EdgeId(Int)作为值并将其存储到DataAccess中,但不知道如何做,有人能帮忙吗?谢谢因为这是重复的,所以在这里回答:因为这是重复的,所以在这里回答: // Set long pointer = 8L * edgeId; edgeMapping.ensureCapacity(pointer + 8L); ed

我发现:

在本示例中,它使用DataAccess存储EdgeId(Int)->OSMWayId(Long)映射,
然而,我想反过来做,使用OSMWayId(Long)作为键,EdgeId(Int)作为值并将其存储到DataAccess中,但不知道如何做,有人能帮忙吗?谢谢

因为这是重复的,所以在这里回答:因为这是重复的,所以在这里回答:
// Set
long pointer = 8L * edgeId;
edgeMapping.ensureCapacity(pointer + 8L);

edgeMapping.setInt(pointer, bitUtil.getIntLow(osmWayId));
edgeMapping.setInt(pointer + 4, bitUtil.getIntHigh(osmWayId));


// Get
long pointer = 8L * internalEdgeId;
return bitUtil.combineIntsToLong(edgeMapping.getInt(pointer), edgeMapping.getInt(pointer + 4L));