Skip to content

Commit 000e622

Browse files
author
周旭
committed
MultiValueMap
1 parent ebfb62a commit 000e622

1 file changed

Lines changed: 29 additions & 21 deletions

File tree

okhttps/src/main/java/com/ejlchina/okhttps/internal/MultiValueMap.java

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,48 @@
1515
*/
1616
public class MultiValueMap<V> extends AbstractMap<String, V> {
1717

18-
1918
transient final List<String> keys = new ArrayList<>();
2019

2120
transient final List<V> values = new ArrayList<>();
2221

2322
transient Set<Entry<String, V>> entrySet;
2423

24+
static class Itr<V> implements Iterator<Entry<String, V>> {
25+
26+
final Iterator<String> kit;
27+
final Iterator<V> vit;
28+
29+
public Itr(Iterator<String> kit, Iterator<V> vit) {
30+
this.kit = kit;
31+
this.vit = vit;
32+
}
33+
34+
@Override
35+
public boolean hasNext() {
36+
return kit.hasNext() && vit.hasNext();
37+
}
38+
39+
@Override
40+
public Entry<String, V> next() {
41+
return new SimpleEntry<>(kit.next(), vit.next());
42+
}
43+
44+
@Override
45+
public void remove() {
46+
kit.remove();
47+
vit.remove();
48+
}
49+
50+
}
51+
2552
/**
2653
* 键值对集合类
2754
*/
2855
class EntrySet extends AbstractSet<Entry<String, V>> {
2956

3057
@Override
3158
public Iterator<Entry<String, V>> iterator() {
32-
Iterator<String> nit = keys.iterator();
33-
Iterator<V> vit = values.iterator();
34-
return new Iterator<>() {
35-
36-
@Override
37-
public boolean hasNext() {
38-
return nit.hasNext() && vit.hasNext();
39-
}
40-
41-
@Override
42-
public Entry<String, V> next() {
43-
return new SimpleEntry<>(nit.next(), vit.next());
44-
}
45-
46-
@Override
47-
public void remove() {
48-
nit.remove();
49-
vit.remove();
50-
}
51-
};
59+
return new Itr<>(keys.iterator(), values.iterator());
5260
}
5361

5462
@Override

0 commit comments

Comments
 (0)