package com.google.android.m4b.maps.bk;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

public class f<Key, Value>
{
  private final HashMap<Key, c<Key, Value>> a = new HashMap();
  private c<Key, Value> b;
  private c<Key, Value> c;
  private int d;

  public f(int paramInt)
  {
    this.d = paramInt;
  }

  private void a(c<Key, Value> paramc)
  {
    if (this.c == null)
    {
      this.b = paramc;
      this.c = paramc;
      return;
    }
    c localc = this.c;
    paramc.a = localc;
    localc.b = paramc;
    this.c = paramc;
  }

  private void b(c<Key, Value> paramc)
  {
    c localc1 = paramc.a;
    c localc2 = paramc.b;
    if (localc1 != null)
      localc1.b = localc2;
    if (localc2 != null)
      localc2.a = localc1;
    paramc.a = null;
    paramc.b = null;
    if (this.b == paramc)
      this.b = localc2;
    if (this.c == paramc)
      this.c = localc1;
  }

  public final Value a(Key paramKey)
  {
    c localc = (c)this.a.get(paramKey);
    if (localc == null)
      return null;
    return localc.d;
  }

  public final void a()
  {
    a(0);
  }

  public final void a(int paramInt)
  {
    while (this.a.size() > paramInt)
      a(this.b.c, c(this.b.c));
  }

  protected void a(Key paramKey, Value paramValue)
  {
  }

  public final int b()
  {
    return this.a.size();
  }

  public final Value b(Key paramKey)
  {
    c localc = (c)this.a.get(paramKey);
    if (localc == null)
      return null;
    b(localc);
    a(localc);
    return localc.d;
  }

  protected void b(Key paramKey, Value paramValue)
  {
  }

  public final Value c()
  {
    if (this.c == null)
      return null;
    return c(this.c.c);
  }

  public final Value c(Key paramKey)
  {
    c localc = (c)this.a.remove(paramKey);
    if (localc == null)
      return null;
    b(localc);
    b(paramKey, localc.d);
    return localc.d;
  }

  public final void c(Key paramKey, Value paramValue)
  {
    c localc1 = (c)this.a.get(paramKey);
    if (localc1 == null)
      a(-1 + this.d);
    c localc2 = new c();
    localc2.d = paramValue;
    localc2.c = paramKey;
    if (localc1 != null)
    {
      b(localc1);
      b(paramKey, localc1.d);
      a(paramKey, localc1.d);
    }
    this.a.put(localc2.c, localc2);
    a(localc2);
  }

  public final Collection<Value> d()
  {
    ArrayList localArrayList = new ArrayList(this.a.size());
    for (c localc = this.b; localc != null; localc = localc.b)
      localArrayList.add(localc.d);
    return localArrayList;
  }

  public final a<Key, Value> e()
  {
    return new a(this.b);
  }

  public static final class a<Key, Value>
    implements Iterator<f.b<Key, Value>>
  {
    private f.c<Key, Value> a;

    public a(f.c<Key, Value> paramc)
    {
      this.a = paramc;
    }

    public final f.b<Key, Value> a()
    {
      f.b localb = new f.b(this.a.c, this.a.d);
      this.a = this.a.b;
      return localb;
    }

    public final boolean hasNext()
    {
      return this.a != null;
    }

    public final void remove()
    {
      throw new UnsupportedOperationException();
    }
  }

  public static final class b<Key, Value>
  {
    public Key a;
    public Value b;

    public b(Key paramKey, Value paramValue)
    {
      this.a = paramKey;
      this.b = paramValue;
    }
  }

  static final class c<Key, Value>
  {
    public c<Key, Value> a;
    public c<Key, Value> b;
    public Key c;
    public Value d;
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.bk.f
 * JD-Core Version:    0.6.2
 */