org.jruby.RubyHash.bucketIndex()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.7k)|赞(0)|评价(0)|浏览(82)

本文整理了Java中org.jruby.RubyHash.bucketIndex方法的一些代码示例,展示了RubyHash.bucketIndex的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyHash.bucketIndex方法的具体详情如下:
包路径:org.jruby.RubyHash
类名称:RubyHash
方法名:bucketIndex

RubyHash.bucketIndex介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

private final synchronized void resize(int newCapacity) {
  final RubyHashEntry[] oldTable = table;
  final RubyHashEntry[] newTable = new RubyHashEntry[newCapacity];
  for (int j = 0; j < oldTable.length; j++) {
    RubyHashEntry entry = oldTable[j];
    oldTable[j] = null;
    while (entry != null) {
      RubyHashEntry next = entry.next;
      int i = bucketIndex(entry.hash, newCapacity);
      entry.next = newTable[i];
      newTable[i] = entry;
      entry = next;
    }
  }
  table = newTable;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private final synchronized void resize(int newCapacity) {
  final RubyHashEntry[] oldTable = table;
  final RubyHashEntry[] newTable = new RubyHashEntry[newCapacity];
  
  for (int j = 0; j < oldTable.length; j++) {
    RubyHashEntry entry = oldTable[j];
    oldTable[j] = null;
    
    while (entry != null) {
      RubyHashEntry next = entry.next;
      int i = bucketIndex(entry.hash, newCapacity);
      entry.next = newTable[i];
      newTable[i] = entry;
      entry = next;
    }
  }
  
  table = newTable;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private final synchronized void resize(int newCapacity) {
  final RubyHashEntry[] oldTable = table;
  final RubyHashEntry[] newTable = new RubyHashEntry[newCapacity];
  
  for (int j = 0; j < oldTable.length; j++) {
    RubyHashEntry entry = oldTable[j];
    oldTable[j] = null;
    
    while (entry != null) {
      RubyHashEntry next = entry.next;
      int i = bucketIndex(entry.hash, newCapacity);
      entry.next = newTable[i];
      newTable[i] = entry;
      entry = next;
    }
  }
  
  table = newTable;
}

代码示例来源:origin: org.jruby/jruby-core

private final synchronized void resize(int newCapacity) {
  final RubyHashEntry[] oldTable = table;
  final RubyHashEntry[] newTable = new RubyHashEntry[newCapacity];
  for (int j = 0; j < oldTable.length; j++) {
    RubyHashEntry entry = oldTable[j];
    oldTable[j] = null;
    while (entry != null) {
      RubyHashEntry next = entry.next;
      int i = bucketIndex(entry.hash, newCapacity);
      entry.next = newTable[i];
      newTable[i] = entry;
      entry = next;
    }
  }
  table = newTable;
}

代码示例来源:origin: org.jruby/jruby-complete

private final RubyHashEntry[] internalCopyTable(RubyHashEntry destHead) {
   RubyHashEntry[]newTable = new RubyHashEntry[table.length];
   for (RubyHashEntry entry = head.nextAdded; entry != head; entry = entry.nextAdded) {
     int i = bucketIndex(entry.hash, table.length);
     newTable[i] = new RubyHashEntry(entry.hash, entry.key, entry.value, newTable[i], destHead);
   }
   return newTable;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private final RubyHashEntry[] internalCopyTable(RubyHashEntry destHead) {
   RubyHashEntry[]newTable = new RubyHashEntry[table.length];
   for (RubyHashEntry entry = head.nextAdded; entry != head; entry = entry.nextAdded) {
     int i = bucketIndex(entry.hash, table.length);
     newTable[i] = new RubyHashEntry(entry.hash, entry.key, entry.value, newTable[i], destHead);
   }
   return newTable;
}

代码示例来源:origin: org.jruby/jruby-core

private final RubyHashEntry[] internalCopyTable(RubyHashEntry destHead) {
   RubyHashEntry[]newTable = new RubyHashEntry[table.length];
   for (RubyHashEntry entry = head.nextAdded; entry != head; entry = entry.nextAdded) {
     int i = bucketIndex(entry.hash, table.length);
     newTable[i] = new RubyHashEntry(entry.hash, entry.key, entry.value, newTable[i], destHead);
   }
   return newTable;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private final RubyHashEntry[] internalCopyTable(RubyHashEntry destHead) {
   RubyHashEntry[]newTable = new RubyHashEntry[table.length];
   for (RubyHashEntry entry = head.nextAdded; entry != head; entry = entry.nextAdded) {
     int i = bucketIndex(entry.hash, table.length);
     newTable[i] = new RubyHashEntry(entry.hash, entry.key, entry.value, newTable[i], destHead);
   }
   return newTable;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

protected RubyHashEntry internalGetEntry(IRubyObject key) {
  final int hash = hashValue(key.hashCode());
  for (RubyHashEntry entry = table[bucketIndex(hash, table.length)]; entry != null; entry = entry.next) {
    if (internalKeyExist(entry, hash, key)) {
      return entry;
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

protected RubyHashEntry internalGetEntry(IRubyObject key) {
  final int hash = hashValue(key.hashCode());
  for (RubyHashEntry entry = table[bucketIndex(hash, table.length)]; entry != null; entry = entry.next) {
    if (internalKeyExist(entry, hash, key)) {
      return entry;
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.jruby/jruby-complete

protected RubyHashEntry internalGetEntry(IRubyObject key) {
  if (size == 0) return NO_ENTRY;
  final int hash = hashValue(key);
  for (RubyHashEntry entry = table[bucketIndex(hash, table.length)]; entry != null; entry = entry.next) {
    if (internalKeyExist(entry, hash, key)) {
      return entry;
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.jruby/jruby-core

protected RubyHashEntry internalGetEntry(IRubyObject key) {
  if (size == 0) return NO_ENTRY;
  final int hash = hashValue(key);
  for (RubyHashEntry entry = table[bucketIndex(hash, table.length)]; entry != null; entry = entry.next) {
    if (internalKeyExist(entry, hash, key)) {
      return entry;
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.jruby/jruby-core

private final RubyHashEntry internalDelete(final int hash, final EntryMatchType matchType, final Object obj) {
  final int i = bucketIndex(hash, table.length);
  RubyHashEntry entry = table[i];
  if (entry != null) {
    RubyHashEntry prior = null;
    for (; entry != null; prior = entry, entry = entry.next) {
      if (entry.hash == hash && matchType.matches(entry, obj)) {
        if (prior != null) {
          prior.next = entry.next;
        } else {
          table[i] = entry.next;
        }
        entry.detach();
        size--;
        return entry;
      }
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.jruby/jruby-complete

private final RubyHashEntry internalDelete(final int hash, final EntryMatchType matchType, final Object obj) {
  final int i = bucketIndex(hash, table.length);
  RubyHashEntry entry = table[i];
  if (entry != null) {
    RubyHashEntry prior = null;
    for (; entry != null; prior = entry, entry = entry.next) {
      if (entry.hash == hash && matchType.matches(entry, obj)) {
        if (prior != null) {
          prior.next = entry.next;
        } else {
          table[i] = entry.next;
        }
        entry.detach();
        size--;
        return entry;
      }
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private final RubyHashEntry internalDelete(final int hash, final EntryMatchType matchType, final Object obj) {
  final int i = bucketIndex(hash, table.length);
  RubyHashEntry entry = table[i];
  if (entry != null) {
    RubyHashEntry prior = null;
    for (; entry != null; prior = entry, entry = entry.next) {
      if (entry.hash == hash && matchType.matches(entry, obj)) {
        if (prior != null) {
          prior.next = entry.next;
        } else {
          table[i] = entry.next;
        }
        entry.detach();
        size--;
        return entry;
      }
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private final RubyHashEntry internalDelete(final int hash, final EntryMatchType matchType, final Object obj) {
  final int i = bucketIndex(hash, table.length);
  RubyHashEntry entry = table[i];
  if (entry != null) {
    RubyHashEntry prior = null;
    for (; entry != null; prior = entry, entry = entry.next) {
      if (entry.hash == hash && matchType.matches(entry, obj)) {
        if (prior != null) {
          prior.next = entry.next;
        } else {
          table[i] = entry.next;
        }
        entry.detach();
        size--;
        return entry;
      }
    }
  }
  return NO_ENTRY;
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

protected void internalPutSmall(final IRubyObject key, final IRubyObject value, final boolean checkForExisting) {
  final int hash = hashValue(key.hashCode());
  final int i = bucketIndex(hash, table.length);
  // if (table[i] != null) collisions++;
  if (checkForExisting) {
    for (RubyHashEntry entry = table[i]; entry != null; entry = entry.next) {
      if (internalKeyExist(entry, hash, key)) {
        entry.value = value;
        return;
      }
    }
  }
  checkIterating();
  table[i] = new RubyHashEntry(hash, key, value, table[i], head);
  size++;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

protected void internalPutSmall(final IRubyObject key, final IRubyObject value, final boolean checkForExisting) {
  final int hash = hashValue(key.hashCode());
  final int i = bucketIndex(hash, table.length);
  // if (table[i] != null) collisions++;
  if (checkForExisting) {
    for (RubyHashEntry entry = table[i]; entry != null; entry = entry.next) {
      if (internalKeyExist(entry, hash, key)) {
        entry.value = value;
        return;
      }
    }
  }
  checkIterating();
  table[i] = new RubyHashEntry(hash, key, value, table[i], head);
  size++;
}

代码示例来源:origin: org.jruby/jruby-complete

protected IRubyObject internalPutNoResize(final IRubyObject key, final IRubyObject value, final boolean checkForExisting) {
  final int hash = hashValue(key);
  final int i = bucketIndex(hash, table.length);
  if (checkForExisting) {
    for (RubyHashEntry entry = table[i]; entry != null; entry = entry.next) {
      if (internalKeyExist(entry, hash, key)) {
        IRubyObject existing = entry.value;
        entry.value = value;
        return existing;
      }
    }
  }
  checkIterating();
  table[i] = new RubyHashEntry(hash, key, value, table[i], head);
  size++;
  // no existing entry
  return null;
}

代码示例来源:origin: org.jruby/jruby-core

protected IRubyObject internalPutNoResize(final IRubyObject key, final IRubyObject value, final boolean checkForExisting) {
  final int hash = hashValue(key);
  final int i = bucketIndex(hash, table.length);
  if (checkForExisting) {
    for (RubyHashEntry entry = table[i]; entry != null; entry = entry.next) {
      if (internalKeyExist(entry, hash, key)) {
        IRubyObject existing = entry.value;
        entry.value = value;
        return existing;
      }
    }
  }
  checkIterating();
  table[i] = new RubyHashEntry(hash, key, value, table[i], head);
  size++;
  // no existing entry
  return null;
}

相关文章

微信公众号

最新文章

更多

RubyHash类方法