📄 map.java
字号:
//: c11:SlowMap.java
// A Map implemented with ArrayLists.
import com.bruceeckel.simpletest.*;
import java.util.*;
import com.bruceeckel.util.*;
public class SlowMap extends AbstractMap {
private static Test monitor = new Test( );
private List
keys = new ArrayList( ),
values = new ArrayList( );
public Object put(Object key, Object value) {
Object result = get(key);
if(!keys.contains(key)) {
keys.add(key);
values.add(value);
} else
values.set(keys.indexOf(key), value);
return result;
}
public Object get(Object key) {
if(!keys.contains(key))
return null;
return values.get(keys.indexOf(key));
}
public Set entrySet( ) {
Set entries = new HashSet( );
Iterator
ki = keys.iterator( ),
vi = values.iterator( );
while(ki.hasNext( ))
entries.add(new MPair(ki.next( ), vi.next( )));
return entries;
}
public String toString( ) {
StringBuffer s = new StringBuffer("{");
Iterator
ki = keys.iterator( ),
vi = values.iterator( );
while(ki.hasNext( )) {
s.append(ki.next( ) + "=" + vi.next( ));
if(ki.hasNext( )) s.append(", ");
}
s.append("}");
return s.toString( );
}
public static void main(String[] args) {
SlowMap m = new SlowMap( );
Collections2.fill(m, Collections2.geography, 15);
System.out.println(m);
monitor.expect(new String[] {
"{ALGERIA=Algiers, ANGOLA=Luanda, BENIN=Porto-
Novo,"+
" BOTSWANA=Gaberone, BURKINA FASO=Ouagadougou,
" +
"BURUNDI=Bujumbura, CAMEROON=Yaounde, " +
"CAPE VERDE=Praia, CENTRAL AFRICAN
REPUBLIC=Bangui,"+
" CHAD=N'djamena, COMOROS=Moroni, " +
"CONGO=Brazzaville, DJIBOUTI=Dijibouti, " +
"EGYPT=Cairo, EQUATORIAL GUINEA=Malabo}"
});
}
} ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -