近义词维护
来源:互联网 发布:js显示系统时间 编辑:程序博客网 时间:2024/04/28 03:54
/**
* <pre>
* 近义词维护
*
* 给定接口,设置两个单词相互近义。
* 近义词具有相互传递性,如果A和B为近义词,B和C是近义词,那么A、B、C都为近义词。
* </pre>
*
*/
public class Demo
{
List<Set<String>> container = new ArrayList<Set<String>>();
/**
* 设置2个单词为近义词
*
* @param word1 单词一
* @param word2 单词二
* @return {@code 0}为成功,{@code -1}为失败或其他异常
*/
public int setSynonyms(String word1, String word2)
{
if (isEmpty(word1) || isEmpty(word1))
{
return -1;
}
boolean found = false;
for (int i = 0; i < container.size(); i++)
{
Set<String> set = container.get(i);
if (set.contains(word1))
{
set.add(word2);
found = true;
}
else if (set.contains(word2))
{
set.add(word1);
found = true;
}
}
if (!found)
{
Set<String> set = new HashSet<String>();
set.add(word1);
set.add(word2);
container.add(set);
}
return 0;
}
private boolean isEmpty(String word)
{
return word == null || word.isEmpty();
}
/**
* 判断2个单词是否为近义词(同一单词视为近义词)
*
* @param word1 单词一
* @param word2 单词二
* @return 为近义词返回{@code true},否则返回{@code false}
*/
public boolean isSynonyms(String word1, String word2)
{
if (isEmpty(word1) || isEmpty(word1))
{
return false;
}
if (word1.equals(word2))
{
return true;
}
boolean synonyms = false;
for (int i = 0; i < container.size(); i++)
{
Set<String> set = container.get(i);
if (set.contains(word1) && set.contains(word2))
{
synonyms = true;
break;
}
}
return synonyms;
}
/**
* 清除单词之间的近义词关系
*/
public void clearRelations()
{
container.clear();
}
public static void main(String[] args)
{
Demo d = new Demo();
d.setSynonyms("1", "0");
d.setSynonyms("2", "3");
d.setSynonyms("1", "5");
d.setSynonyms("6", "5");
//d.clearRelations();
System.out.println(d.isSynonyms("1", "0"));
}
}
- 近义词维护
- 维护
- 网络故障维护
- 邮件系统维护
- 激光打印机维护
- 数据库维护
- SYBASE维护
- 局域网维护
- 网络维护
- 数据库维护
- 计算机维护,电脑维护,计算机维护硬件,电脑硬件维护
- ATM维护
- 项目维护
- 遭遇维护
- 网络维护
- 不再维护
- 维护系统
- 日常维护
- socket基础知识
- window.close(); 关闭浏览器窗口js代码的分析总结
- 缘系天涯,一枕残梦千里殇岁月沉积着忧伤:伤感日志
- android 进程与线程的区别:
- position属性absolute与relative 详解
- 近义词维护
- 递归和迭代的区别
- new创建一个对象,是否需要加括号?
- 一见钟情!Java闭包
- javap的使用
- delphi 简单的 fastreport 设计
- (转)Android开发工具——ADB(Android Debug Bridge) <三>DalvikVM之jdwp线程
- I/O调度模式
- UML类图组成