List与Iterator接口

C_zn 2013-11-18 10:32:20

  (1)编写NameDao接口,包含如下方法:
//将数组中的字符串放入列表,该方法需要使用Iterator接口实现,参见课本P558
public ListgetNameFromArray(String[] names);
//在列表中搜索到与name相同的项目,就返回该name所在的序号,找不到返回-1。
public int searchName(ListnameList, String name);
//根据指定id,从列表中移除指定的项目,如果id指定错误(负数或者超出列表最大值)抛出IllegaArgumentException异常,移除成功返回true
public boolean removeFromList(ListnameList, int id);
  (2)编写NameDaoImpl实现NameDao接口。
  (3)编写一个测试类,测试上述代码的功能。
求教代码??
ps:那些要我自己好好写的就不要发了,我就是因为写不出来才来问的,我自己也在继续写代码,希望回复的是能解决问题的。
...全文
263 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
接口:
package com.meritit.dm.csdn.ext;

import java.util.List;

/**
 * NameDao
 * 
 * @author 袁慎建
 * @version 1.0
 * @email ysjian_pingcx@126.com
 * @QQ 646633781
 * @telephone 18192235667
 * @csdnBlog http://blog.csdn.net/ysjian_pingcx
 * @createTime 2013-11-19 下午5:37:55
 * @copyRight 西安美林电子有限责任公司
 */
public interface INameDao {

	/**
	 * 从数组中获取名字列表
	 * 
	 * @param names
	 *            名字数组
	 * @return 返回一个集合列表
	 */
	List<String> getNameFromArray(String[] names);

	/**
	 * 从列表中移除指定id的元素
	 * 
	 * @param nameList
	 *            指定列表列表
	 * @param id
	 *            指定的id
	 * @return 如果移除成功返回<code>true</code>,否则返回<code>false</code>
	 */
	boolean removeFromList(List<String> nameList, int id);

	/**
	 * 在列表中搜索到与name相同的项目,就返回该name所在的序号,找不到返回-1。
	 * 
	 * @param nameList
	 *            指定列表
	 * @param name
	 *            匹配值
	 * @return 返回搜索到的序号
	 */
	int searchName(List<String> nameList, String name);
}
实现类和测试:
public class NameDaoImpl implements INameDao {

	@Override
	public List<String> getNameFromArray(String[] names) {
		if (names == null) {
			throw new NullPointerException("null value input");
		}
		List<String> returnList = new ArrayList<String>();

		for (String name : names) {
			returnList.add(name);
		}
		return returnList;
	}

	@Override
	public boolean removeFromList(List<String> nameList, int id) {
		if (nameList == null) {
			throw new NullPointerException("null value input");
		}
		if (id > nameList.size()) {
			throw new IllegalArgumentException(
					"id is higher than the size of list-->[id=" + id + "]");
		}
		if (id < 0) {
			throw new IllegalArgumentException("id is lower than zero-->[id="
					+ id + "]");
		}
		return nameList.remove(nameList.get(id));
	}

	@Override
	public int searchName(List<String> nameList, String name) {
		if (nameList == null) {
			throw new NullPointerException("null value input");
		}
		if (name == null) {
			throw new NullPointerException("null value input");
		}
		return nameList.indexOf(name) + 1;
	}

	public static void main(String[] args) throws IllegalArgumentException {
		// 创建names数组
		String[] names = { "ysjian001", "ysjian002", "ysjian003", "ysjian004",
				"ysjian005" };
		INameDao nameDao = new NameDaoImpl();
		// 创建List并赋值
		List<String> list = nameDao.getNameFromArray(names);
		int id = 3;
		if (nameDao.removeFromList(list, id)) {
			System.out.println("删除成功");
		}
		System.out.println(list);
	}
}
GP0071 2013-11-19
  • 打赏
  • 举报
回复
希望 是你想要的。
package com.test1;

import java.util.List;

public interface NameDao {
	// 将数组中的字符串放入列表,该方法需要使用Iterator接口实现,参见课本P558
	public List ListgetNameFromArray(String[] names);

	// 在列表中搜索到与name相同的项目,就返回该name所在的序号,找不到返回-1。
	public int searchName(List nameList, String name);
	
	/*根据指定id,从列表中移除指定的项目,如果id指定错误
	(负数或者超出列表最大值)抛出IllegaArgumentException异常,移除成功返回true*/
	public boolean removeFromList(List nameList, int id) throws Exception;
}
package com.test1;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class NameDaoImpl implements NameDao {
	public List ListgetNameFromArray(String[] names) {
		List<String> list = new ArrayList<String>();
		for (String name : names) {
			list.add(name);
		}

		// 使用迭代器输出
		Iterator<String> iterator = list.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		return list;
	}

	public int searchName(List nameList, String name) {
		for (int i = 0; i < nameList.size(); i++) {
			if (name.equals(nameList.get(i))) {
				return i;
			}
		}
		return -1;
	}
	

	public boolean removeFromList(List nameList, int id) throws Exception{
		try {
			nameList.remove(id);
			return true;
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			throw new Exception("IllegaArgumentException");
		}
	}
}
package com.test1;

import java.util.List;

public class Test {

	/**
	 * @author gaopeng
	 * 2013-11-19
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		NameDao nd = new NameDaoImpl();
		System.out.println("****将数组中的字符串放入列表,该方法需要使用Iterator接口实现**");
		String[] strs = new String[] { "鸣人", "佐助", "卡卡西" };
		List list = nd.ListgetNameFromArray(strs);

		System.out.println("\n****在列表中搜索到与name相同的项目,就返回该name所在的序号,找不到返回-1**");
		System.out.println(nd.searchName(list, "卡卡西"));

		try {
			System.out.println("\n****根据指定id,从列表中移除指定的项目 ..... **");
			System.out.println(nd.removeFromList(list, 0));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
埋头的鸵鸟 2013-11-19
  • 打赏
  • 举报
回复

import java.util.List;

public interface NameDao {
    public List<String> getNameFromArray(String[] names);

    public boolean removeFromList(List<String> ListnameList,int id);
}

import java.util.ArrayList;
import java.util.List;

public class NameDaoImpl implements NameDao {
    //实现getNameFromArray方法
    @Override
    public List<String> getNameFromArray(String[] names){
        List<String> list=new ArrayList<String>();
        //遍历names数组
        for (String name:names){
            //添加元素
            list.add(name);
        }
        return list;
    }

    @Override
    public boolean removeFromList(List<String> ListnameList,int id)throws IllegalArgumentException{
        boolean flag=false;
        if(id>=ListnameList.size()||id<0){
            throw new IllegalArgumentException();
        }
        if(ListnameList.remove(id)!=null){
            flag=true;
        }
        return flag;
    }
}

import java.util.List;

public class Test {
    public static void main(String[] args) throws IllegalArgumentException{
        //创建names数组
        String[] names={"张三","李四","王五"};
        NameDao nameDao=new NameDaoImpl();
        //创建List并赋值
        List<String> list=nameDao.getNameFromArray(names);
        int id=2;
        if(nameDao.removeFromList(list,id)){
            System.out.println("删除成功");
        }
    }
}

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧