书签管理系统(Map使用)

本文介绍了书签管理系统的实现,包括URLItem类用于描述书签项,包含url、title、stars和visits属性。Bookmark类作为书签管理类,利用Map存储数据,通过标题作为key,提供添加、删除、查询和修改书签的功能。

URLItem类(书签项类)

该类用于描述一个具体的书签项,可以对该类进行一些基本的操作

属性:

      1. 网址url(字符串)

      2. 标题 title(字符串)

      3. 星级stars(整型)

      4. 访问次数 vistis(整型)

设计Bookmark类(书签管理类)

该类用于简单的书签管理,通过Map存储数据。value是URLitem类的对象,key是value对象的标题。

方法

(1)添加书签:参数有网址,标题,星级

(2)删除标签(可以用标题和网址两种方式来删除)

(3)查询书签(通过书签标题)

(4)修改书签对应的网址(通过书签标题)

(5)修改书签标题

 

测试类:

package com.sweet.test;

import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<String, URLitem> urlobj = new HashMap<>();
		boolean isOK = true;
		while (isOK) {
			int i = screen();
			if (i == 6) {
				isOK = false;
				System.out.println("谢谢使用!");
			}
			function(i,urlobj);
		}
	}
	
	public static int screen() {
		System.out.println("-------------------欢迎进入书签管理系统-----------------\n");
		System.out.println("                1.添加书签(参数有网址,标题,星级)");
		System.out.println("                2.删除标签(可以用标题和网址两种方式来删除)");
		System.out.println("                3.查询书签(通过书签标题)");
		System.out.println("                4.修改书签对应的网址(通过书签标题)");
		System.out.println("                5.修改书签标题");
		System.out.println("                6.退出");
		System.out.println("\n------------------------------------------------------");
		System.out.println("请输入你的操作:");
		Scanner scanner = new Scanner(System.in);
		int i = scanner.nextInt();
		return i;
	}
	
	public static void function(int i,Map<String, URLitem> urlobj) {
		
		switch (i) {
		case 1:
			addInfo(urlobj);
			break;
		case 2:
			deleteInfo(urlobj);
			break;
		case 3:
			queryInfo(urlobj);
			break;
		case 4:
			reviseUrl(urlobj);
			break;
		case 5:
			reviseTitle(urlobj);
			break;
		default:
			break;
		}
	}
	
	public static void addInfo(Map<String, URLitem> urlobj) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入网址:");
		String url = scanner.next();
		System.out.print("请输入标题:");
		String title = scanner.next();
		System.out.print("请输入星级:");
		String level = scanner.next();
		urlobj.put(title, new URLitem(url, title, level));
		System.out.println("添加标签成功!");
//		System.out.println(urlobj);
		Set<Entry<String, URLitem>> entries = urlobj.entrySet();
		for (Entry<String, URLitem> entry : entries) {
			System.out.println("标签:"+entry.getKey()+"		信息|"+entry.getValue());
		}
	}
	
	public static void deleteInfo(Map<String, URLitem> urlobj) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入删除的方式:");
		System.out.println("      1. 按标题删除");
		System.out.println("      2. 按网址删除");
		int i = scanner.nextInt();
		boolean isOK = false;
		Set<Entry<String, URLitem>> entries = urlobj.entrySet();
		Iterator<Entry<String, URLitem>> iterator = entries.iterator();
		
		if(i == 1) {
			System.out.println("请输入要删除的标题:");
			String title = scanner.next();
			
			while (iterator.hasNext()) {
				Entry<String, URLitem> entry = iterator.next();
				if (entry.getValue().getTitle().equals(title)) {
					iterator.remove();
					isOK = true;
				}
			}
			
		}else {
			System.out.println("请输入要删除的网址:");
			String url = scanner.next();
			while (iterator.hasNext()) {
				Entry<String, URLitem> entry = iterator.next();
				if (entry.getValue().getUrl().equals(url)) {
					iterator.remove();
					isOK = true;
				}
			}
			
		}
		if (isOK) {
			System.out.println("删除成功!");
		}else {
			System.out.println("没有该条目信息!");
		}
		
		for (Entry<String, URLitem> entry : entries) {
			System.out.println("	信息|"+entry.getValue());
		}
		
	}

	public static void queryInfo(Map<String, URLitem> urlobj) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入书签标题:");
		String title = scanner.next();
		boolean isOK = false;
		Set<Entry<String, URLitem>> entries = urlobj.entrySet();
		Iterator<Entry<String, URLitem>> iterator = entries.iterator();
		while (iterator.hasNext()) {
			Entry<String, URLitem> entry = iterator.next();
			if (entry.getValue().getTitle().equals(title)) {
				System.out.println("	信息|"+entry.getValue());
				isOK = true;
			}
		}
		if(isOK) {
			System.out.println("查找成功!");
		}else {
			System.out.println("没有该条目的信息!");
		}
	
	}
	
	public static void reviseUrl(Map<String, URLitem> urlobj) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入要修改网址的标题:");
		String title = scanner.next();
		System.out.println("请输入新的网址:");
		String url = scanner.next();
		boolean isOK = false;
		Set<Entry<String, URLitem>> entries = urlobj.entrySet();
		Iterator<Entry<String, URLitem>> iterator = entries.iterator();
		while (iterator.hasNext()) {
			Entry<String, URLitem> entry = iterator.next();
			if (entry.getValue().getTitle().equals(title)) {
				//修改		
				entry.getValue().setUrl(url);
				isOK = true;
			}
			System.out.println("	信息|"+entry.getValue());
		}
			
		if(isOK) {
			System.out.println("修改成功!");
		}else {
			System.out.println("没有该条目的信息!");
		}
		
	}
	
	public static void reviseTitle(Map<String, URLitem> urlobj) {
		
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入要修改的标题:");
		String title = scanner.next();
		System.out.println("请输入新的标题:");
		String title1 = scanner.next();
		boolean isOK = false;
		Set<Entry<String, URLitem>> entries = urlobj.entrySet();
		Iterator<Entry<String, URLitem>> iterator = entries.iterator();
		while (iterator.hasNext()) {
			Entry<String, URLitem> entry = iterator.next();
			if (entry.getValue().getTitle().equals(title)) {
				//修改		
				entry.getValue().setTitle(title1);;
				isOK = true;
			}
			System.out.println("	信息|"+entry.getValue());
		}
			
		if(isOK) {
			System.out.println("修改成功!");
		}else {
			System.out.println("没有该条目的信息!");
		}
	}

}

 

书签类:

/**
 * 
 */
package com.sweet.test;

/**
 * @author Administrator
 *
 */
public class URLitem {
	
	private String url;
	private String title;
	private String level;
	
	public URLitem(String url, String title, String level) {
		super();
		this.url = url;
		this.title = title;
		this.level = level;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	@Override
	public String toString() {
		return " 网址:" + url + "   标题:" + title + "    星级:" + level + "\n";
	}
	

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值