当前位置: 首页>>代码示例>>Java>>正文


Java Key.hashCode方法代码示例

本文整理汇总了Java中com.intellij.openapi.util.Key.hashCode方法的典型用法代码示例。如果您正苦于以下问题:Java Key.hashCode方法的具体用法?Java Key.hashCode怎么用?Java Key.hashCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.openapi.util.Key的用法示例。


在下文中一共展示了Key.hashCode方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: minus

import com.intellij.openapi.util.Key; //导入方法依赖的package包/类
@NotNull
@Override
public KeyFMap minus(@NotNull Key<?> key) {
  int oldSize = size();
  int keyCode = key.hashCode();
  if (!containsKey(keyCode)) {
    return this;
  }
  if (oldSize == ArrayBackedFMap.ARRAY_THRESHOLD + 1) {
    int[] keys = keys();
    Object[] values = getValues();
    int i = ArrayUtil.indexOf(keys, keyCode);
    keys = ArrayUtil.remove(keys, i);
    values = ArrayUtil.remove(values, i);
    return new ArrayBackedFMap(keys, values);
  }
  return new MapBackedFMap(this, keyCode);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:MapBackedFMap.java

示例2: minus

import com.intellij.openapi.util.Key; //导入方法依赖的package包/类
@NotNull
@Override
public KeyFMap minus(@NotNull Key<?> key) {
  int oldSize = size();
  int keyCode = key.hashCode();
  for (int i = 0; i< oldSize; i++) {
    int oldKey = keys[i];
    if (keyCode == oldKey) {
      if (oldSize == 3) {
        int i1 = (2-i)/2;
        int i2 = 3 - (i+2)/2;
        Key<Object> key1 = Key.getKeyByIndex(keys[i1]);
        Key<Object> key2 = Key.getKeyByIndex(keys[i2]);
        if (key1 == null && key2 == null) return EMPTY_MAP;
        if (key1 == null) return new OneElementFMap<Object>(key2, values[i2]);
        if (key2 == null) return new OneElementFMap<Object>(key1, values[i1]);
        return new PairElementsFMap(key1, values[i1], key2, values[i2]);
      }
      int[] newKeys = ArrayUtil.remove(keys, i);
      Object[] newValues = ArrayUtil.remove(values, i, ArrayUtil.OBJECT_ARRAY_FACTORY);
      return new ArrayBackedFMap(newKeys, newValues);
    }
  }
  return this;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:26,代码来源:ArrayBackedFMap.java

示例3: plus

import com.intellij.openapi.util.Key; //导入方法依赖的package包/类
@NotNull
@Override
public <V> KeyFMap plus(@NotNull Key<V> key, @NotNull V value) {
  if (key == key1) return new PairElementsFMap(key, value, key2, value2);
  if (key == key2) return new PairElementsFMap(key, value, key1, value1);
  return new ArrayBackedFMap(new int[]{key1.hashCode(), key2.hashCode(), key.hashCode()}, new Object[]{value1, value2, value});
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:PairElementsFMap.java

示例4: plus

import com.intellij.openapi.util.Key; //导入方法依赖的package包/类
@NotNull
@Override
public <V> KeyFMap plus(@NotNull Key<V> key, @NotNull V value) {
  int oldSize = size();
  int keyCode = key.hashCode();
  int[] newKeys = null;
  Object[] newValues = null;
  int i;
  for (i = 0; i < oldSize; i++) {
    int oldKey = keys[i];
    if (keyCode == oldKey) {
      if (value == values[i]) return this;
      newKeys = new int[oldSize];
      newValues = new Object[oldSize];
      System.arraycopy(keys, 0, newKeys, 0, oldSize);
      System.arraycopy(values, 0, newValues, 0, oldSize);
      newValues[i] = value;
      break;
    }
  }
  if (i == oldSize) {
    if (oldSize == ARRAY_THRESHOLD) {
      return new MapBackedFMap(keys, keyCode, values, value);
    }
    newKeys = ArrayUtil.append(keys, keyCode);
    newValues = ArrayUtil.append(values, value, ArrayUtil.OBJECT_ARRAY_FACTORY);
  }
  return new ArrayBackedFMap(newKeys, newValues);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:ArrayBackedFMap.java

示例5: get

import com.intellij.openapi.util.Key; //导入方法依赖的package包/类
@Override
public <V> V get(@NotNull Key<V> key) {
  int oldSize = size();
  int keyCode = key.hashCode();
  for (int i = 0; i < oldSize; i++) {
    int oldKey = keys[i];
    if (keyCode == oldKey) {
      //noinspection unchecked
      return (V)values[i];
    }
  }
  return null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:14,代码来源:ArrayBackedFMap.java


注:本文中的com.intellij.openapi.util.Key.hashCode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。