entries = new HashMap(count+count/2);
entries = new LinkedHashMap(count+count/2);
  private void readEntries() throws ZipException, IOException  {		/* Search for the End Of Central Directory.  When a zip comment is 		 * present the directory may start earlier.     * Note that a comment has a maximum length of 64K, so that is the     * maximum we search backwards.		 */    PartialInputStream inp = new PartialInputStream(raf, 4096);		long pos = raf.length() - ENDHDR;    long top = Math.max(0, pos - 65536);    do      {	if (pos < top)	  throw new ZipException	    ("central directory not found, probably not a zip file: " + name);	inp.seek(pos--);      }    while (inp.readLeInt() != ENDSIG);    if (inp.skip(ENDTOT - ENDNRD) != ENDTOT - ENDNRD)			throw new EOFException(name);    int count = inp.readLeShort();    if (inp.skip(ENDOFF - ENDSIZ) != ENDOFF - ENDSIZ)			throw new EOFException(name);    int centralOffset = inp.readLeInt();    entries = new HashMap(count+count/2);    inp.seek(centralOffset);    for (int i = 0; i < count; i++)      {	if (inp.readLeInt() != CENSIG)				throw new ZipException("Wrong Central Directory signature: " + name);        inp.skip(6);	int method = inp.readLeShort();	int dostime = inp.readLeInt();	int crc = inp.readLeInt();	int csize = inp.readLeInt();	int size = inp.readLeInt();	int nameLen = inp.readLeShort();	int extraLen = inp.readLeShort();	int commentLen = inp.readLeShort();        inp.skip(8);	int offset = inp.readLeInt();	String name = inp.readString(nameLen);			ZipEntry entry = new ZipEntry(name);			entry.setMethod(method);			entry.setCrc(crc & 0xffffffffL);			entry.setSize(size & 0xffffffffL);			entry.setCompressedSize(csize & 0xffffffffL);			entry.setDOSTime(dostime);	if (extraLen > 0)	  {				byte[] extra = new byte[extraLen];	    inp.readFully(extra);				entry.setExtra(extra);			}	if (commentLen > 0)	  {            entry.setComment(inp.readString(commentLen));			}			entry.offset = offset;			entries.put(name, entry);		}	}