1、定义一个类,类里面有一个属性col,类型是集合类型Collection,实现下列方法:可以向col里面添加数据、修改数据、查询数据、删除数据。也就是把
这个col当作一个数据存储的容器,对其实现数据的增删改查的方法。
package cn.hncu.MySet3;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionSet<E> {
private Collection<E> col=new ArrayList<E>();
public boolean add(E e){
return col.add(e);
}
public boolean update(E e1,E e2){//把e1改成e2
Object objs[]=col.toArray();
col.clear();//记得清除
boolean flag=true;
for(int i=0;i<objs.length;i++){
@SuppressWarnings("unchecked")
E e=(E) objs[i];
if(e.equals(e1)){
e=e2;
flag=false;
}
col.add(e);
}
return flag;
}
public boolean delete(E e){
return col.remove(e);
}
public Collection<E> index(E e){
Collection<E> c=new ArrayList<E>();
Iterator<E> it=col.iterator();
while(it.hasNext()){
Object obj=it.next();
if(obj.toString().indexOf(e.toString())>=0){
c.add(e);
}
}
return c;
}
public Collection<E> getAll(){
return col;
}
}
package cn.hncu.MySet3;
import java.util.Iterator;
public class Test2 {
public static void main(String[] args) {
CollectionSet<String> set=new CollectionSet<String>();
set.add("!!!");
set.add("1");
set.add("2");
set.add("3");//可以重复
set.add("3");
set.add("3");
set.add("3");
set.update("1", "///\\))))");
Iterator<String> it=set.getAll().iterator();//获得元素
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println(set.index("3"));//
Iterator<String> it2=set.index("2").iterator();//获得元素
while(it2.hasNext()){
System.out.println(it2.next());
}
}
}
2、把上题的Collection改成使用Map实现。
package cn.hncu.MySet3;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class MapSet<K,V> {
private Map<K, V> map=new HashMap<K, V>();
public boolean put(K key,V value){//用obj更能兼容类型,但是在这里,必须是K类型。这种也有改的功能
map.put(key, value);
return true;
}
public V delete(Object key) {
return map.remove(key);
}
public Map<K, V> getAll(){
return map;
}
public Map<K, V> index(String valueStr){
Map<K, V> m=new HashMap<K, V>();
Iterator<Entry<K, V>> it=map.entrySet().iterator();
while(it.hasNext()){
Entry<K, V> entry=it.next();
if(entry.getValue().toString().indexOf(valueStr)>=0){
m.put(entry.getKey(), entry.getValue());
// System.out.println("OK");
}
}
return m;
}
}
package cn.hncu.MySet3;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class Test3 {
public static void main(String[] args) {
MapSet<Integer, String> set=new MapSet<Integer, String>();
set.put(1, "100");
set.put(3, "12");
set.put(2, "lzp");
set.put(6, "wja");
set.put(7, "LLL");//这种是更改
set.put(6, "LLL");//这种是更改
// Iterator<Entry<Integer, String>> it=set.getAll().entrySet().iterator();//慢慢熟悉这种格式
// while(it.hasNext()){
// Entry<Integer, String> entry=it.next();
// System.out.println(entry);
// }
Map<Integer, String> m=set.index("LLL");
Iterator<Entry<Integer, String>> it2=m.entrySet().iterator();
while(it2.hasNext()){
Entry<Integer, String> entry2=it2.next();
System.out.println(entry2);
}
}
}
2
、把上题的
Collection
改成使用
Map
实现。