JAVA check语句在第一次执行语句

时间:2017-04-24 11:09:11

标签: java list arraylist

HashMap intermediateIdMap = new HashMap(d_idMap.size());
    int     linkCounter       = 0;

    for (Iterator it = d_idMap.entrySet().iterator(); it.hasNext(); )
    {
        Map.Entry me    = ((Map.Entry) it.next());
        long      oldId = (Long) me.getKey();
        MapObject mo    = d_mc.findMapObject(oldId);

        if (mo != null && !isMetaDataType(mo)
                && (IdSpace.isTransient(mo.id()) || d_updateAllIds
                        || isNegativeIdUpdate(mo.id())))
        {
            int transientId = d_idGenerator.getNewId();

第一次执行时,我需要获得第一个transientId及其设置的Id以及最后一个Id,即MIN_TRANSIENT和MAX_TRANSIENT

我尝试将数据结构更改为LinkedHashMap,这会给我第一个和最后一个元素,但我想老年人不要我改变ds,你们帮我找另一种方式

public synchronized int getNewId()
{
    // Contract.precondition("Within range", d_currentId <= d_range);
    // CMSDL-3988 - recycle/reset the currentId once max reached
    if(d_currentId>d_range)
        d_currentId=MIN_TRANSIENT;

    return d_currentId++;
}

1 个答案:

答案 0 :(得分:0)

如果您因某种原因需要更改,则应该允许您进行更改。

否则,您需要一些代码周围的结构,例如

boolean firstValueSeen = false;
int firstValue = -1;

for (…) {
        …
            int transientId = d_idGenerator.getNewId();
            firstValueSeen = true;
            firstValue = transientId