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

被折叠的 条评论
为什么被折叠?



