HttpFields implements Iterable<HttpField> { public void put(HttpField field) { boolean put = false; for (int i = size; i-- > 0; ) { HttpField f = fields[i]; if (f.isSameName(field)) { if (put) { System.arraycopy(fields, i + 1, fields, i, --size - i); } else { fields[i] = field; put = true; } } } if (!put) add(field); } HttpFields();  HttpFields(int capacity);  HttpFields(HttpFields fields); static String stripParameters(String value); static String valueParameters(String value, Map<String, String> parameters); int size(); @Override Iterator<HttpField> iterator(); Stream<HttpField> stream(); Set<String> getFieldNamesCollection(); Enumeration<String> getFieldNames(); HttpField getField(int index); HttpField getField(HttpHeader header); HttpField getField(String name); boolean contains(HttpField field); boolean contains(HttpHeader header, String value); boolean contains(String name, String value); boolean contains(HttpHeader header); boolean containsKey(String name); @Deprecated String getStringField(HttpHeader header); String get(HttpHeader header); @Deprecated String getStringField(String name); String get(String header); List<String> getValuesList(HttpHeader header); List<String> getValuesList(String name); boolean addCSV(HttpHeader header, String... values); boolean addCSV(String name, String... values); List<String> getCSV(HttpHeader header, boolean keepQuotes); List<String> getCSV(String name, boolean keepQuotes); List<String> getQualityCSV(HttpHeader header); List<String> getQualityCSV(String name); Enumeration<String> getValues(final String name); void put(HttpField field); void put(String name, String value); void put(HttpHeader header, HttpHeaderValue value); void put(HttpHeader header, String value); void put(String name, List<String> list); void add(String name, String value); void add(HttpHeader header, HttpHeaderValue value); void add(HttpHeader header, String value); HttpField remove(HttpHeader name); HttpField remove(String name); long getLongField(String name); long getDateField(String name); void putLongField(HttpHeader name, long value); void putLongField(String name, long value); void putDateField(HttpHeader name, long date); void putDateField(String name, long date); void addDateField(String name, long date); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString(); void clear(); void add(HttpField field); void addAll(HttpFields fields); void add(HttpFields fields);  }
@Test void testPut() { HttpFields header = new HttpFields(); header.put("name0", "value:0"); header.put("name1", "value1"); assertEquals(2, header.size()); assertEquals("value:0", header.get("name0")); assertEquals("value1", header.get("name1")); assertNull(header.get("name2")); int matches = 0; Enumeration<String> e = header.getFieldNames(); while (e.hasMoreElements()) { Object o = e.nextElement(); if ("name0".equals(o)) matches++; if ("name1".equals(o)) matches++; } assertEquals(2, matches); e = header.getValues("name0"); assertTrue(e.hasMoreElements()); assertEquals(e.nextElement(), "value:0"); assertFalse(e.hasMoreElements()); }