求大神指导如何用JAVA计算出一个List里的相似信息这个相似是要求相似度是多少?建议去重写TestMessage类的equals和hash方法 。
package com;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
class TestMessage{
private int messageId;
private String message;
【java计算相似代码 java相似的语言】 public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getMessageId() {
return messageId;
}
public void setMessageId(int messageId) {
this.messageId = messageId;
}
@Override
public int hashCode() {
if(null == this.message){
return super.hashCode();
}else{
return this.message.hashCode();
}
}
@Override
public boolean equals(Object obj) {
if(null == obj){
return false;
}else if(obj instanceof TestMessage){
TestMessage tempObj = (TestMessage)obj;
return StringUtils.equalsIgnoreCase(message, tempObj.getMessage());
}else{
return false;
}
}
}
public class Test {
public static void main(String[] args) {
ListTestMessage list1 = new ArrayListTestMessage();
TestMessage yq1 = new TestMessage();
yq1.setMessageId(11);
yq1.setMessage("this is a test message");
TestMessage yq2 = new TestMessage();
yq2.setMessageId(12);
yq2.setMessage("this is a test message");
TestMessage yq3 = new TestMessage();
yq3.setMessageId(13);
yq3.setMessage("hello world");
TestMessage yq4 = new TestMessage();
yq4.setMessageId(14);
yq4.setMessage("this is a test message");
list1.add(yq1);
list1.add(yq2);
list1.add(yq3);
list1.add(yq4);
MapTestMessage,ListTestMessage data = https://www.04ip.com/post/new HashMapTestMessage,ListTestMessage();
for(int i=0;ilist1.size();i){
TestMessage key = list1.get(i);
if(!data.containsKey(key)){
data.put(key, new ArrayListTestMessage());
}else{
continue;
}
ListTestMessage temp = data.get(key);
for(int j=i 1;jlist1.size();j){
TestMessage value = https://www.04ip.com/post/list1.get(j);
if(temp.contains(value)){
continue;
}else{
temp.add(value);
}
}
}
System.out.println("OK");
}
}
在java中写个程序,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果 。/*
* 在java中写个程序java计算相似代码,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果 。
* 如java计算相似代码:
“0”110212
“1”022011
“2”231221
“3”222121
“4”203022
“5”030111
“6”220122
“7”212232
“8”122232
“9”200123
打印 :7组8组
结果是:2232
位数4位
代码如下所示:
*/
import java.util.Scanner;
public class Main3 {
public static void main(String args[]){
String [][]str=new String[10][2];
Scanner scanner=new Scanner(System.in);
for(int i=0;i10;i){
//如果没有前面的“0”,“1”……的输入,我们手动添加即可,或者改为1维数组
str[i][0]=scanner.next();
//我们在这里要以String的格式读取数字,以便于后面的计算和处理
str[i][1]=scanner.nextLine();
str[i][1]=str[i][1].trim();
}
String temp[]=new String[2];
int count[]=new int[45];//0需要和2-9比,2需要和3-9比,以此类推,8比9,9不比,所以一共有45个比较结果
String best[]=new String[45];
String choice[]=new String[45];
int cn=0;
for(int i=0;i9;i){
for(int j=i 1;j=9;j){
for(int l=0;l6;l){
if(str[i][1].charAt(l)==str[j][1].charAt(l)){
//如果两个数列中有相同的位数,那么这两个数组合的计数器加一
//并且将相同位数加入对应组合的字符串中
count[cn];
if(best[cn]!=null)
best[cn] =String.valueOf(str[i][1].charAt(l));
else
best[cn]=String.valueOf(str[i][1].charAt(l));
}
}
choice[cn]=String.valueOf(i) ";" String.valueOf(j);
cn;
}
}
int max=count[0];
int max_n=-1;
for(int i=1;i45;i)
//找到相同位数最多的那一位
if(max=count[i]){
//这里是相同数量取最后一组,满足楼主的要求
//若要相同数量取前一组,改为maxcount[i]即可
max=count[i];
max_n=i;
}
//System.out.println(max_n "\t" max "\t" best[max_n]);
int index=choice[max_n].indexOf(";");
System.out.println(choice[max_n].substring(0,index) "组\t" choice[max_n].substring(index 1) "组");
System.out.println("结果是:\t" best[max_n]);
System.out.println("位数" count[max_n] "位");
}
}
运行结果:
输入:
“0”110212
“1”022011
“2”231221
“3”222121
“4”203022
“5”030111
“6”220122
“7”212232
“8”122232
“9”200123
输出:
7组 8组
结果是: 2232
位数4位
完全满足楼主要求,并且有注释~
加不加分看楼主你的心情,不过帮忙点下“对我有帮助”呗~谢谢了
java两组数组判断,进行模糊查询,如果检测到同一组相似那么就输出相似,求代码,谢谢,不用listpublic class Main{public static void main (String[] args){int a[]={6,7};int []b = new int[2];int i=0;for(i=0;i2;i){b[i]=a[i]-1;System.out.println(b[i]);}}}望采纳谢谢,可以追问
请问各位高手 计算两句话的cosin相似度 用java代码如何实现?给你看看我的思路:把两句话存在两个String里 , 然后用一个int记String长度 , 一个int记相同字的个数,最后把两个int一除就出来了 。
当然这个是最简单的,只能算相同长度的两句话 。
如何计算多个文本的相似度java程序,利用向量String text1 = "我爱学习";
String text2 = "我爱读书";
String text3 = "他是黑客";
TextSimilarity textSimilarity = new CosineTextSimilarity();
double score1pk1 = textSimilarity.similarScore(text1, text1);
double score1pk2 = textSimilarity.similarScore(text1, text2);
double score1pk3 = textSimilarity.similarScore(text1, text3);
double score2pk2 = textSimilarity.similarScore(text2, text2);
double score2pk3 = textSimilarity.similarScore(text2, text3);
double score3pk3 = textSimilarity.similarScore(text3, text3);
System.out.println(text1 " 和 " text1 " 的相似度分值:" score1pk1);
System.out.println(text1 " 和 " text2 " 的相似度分值:" score1pk2);
System.out.println(text1 " 和 " text3 " 的相似度分值:" score1pk3);
System.out.println(text2 " 和 " text2 " 的相似度分值:" score2pk2);
System.out.println(text2 " 和 " text3 " 的相似度分值:" score2pk3);
System.out.println(text3 " 和 " text3 " 的相似度分值:" score3pk3);
运行结果如下:
我爱学习 和 我爱学习 的相似度分值:1.0
我爱学习 和 我爱读书 的相似度分值:0.4
我爱学习 和 他是黑客 的相似度分值:0.0
我爱读书 和 我爱读书 的相似度分值:1.0
我爱读书 和 他是黑客 的相似度分值:0.0
他是黑客 和 他是黑客 的相似度分值:1.0
方式二:简单共有词,通过计算两篇文档有多少个相同的词来评估他们的相似度
实现类:org.apdplat.word.analysis.SimpleTextSimilarity
用法如下:
String text1 = "我爱学习";
String text2 = "我爱读书";
String text3 = "他是黑客";
TextSimilarity textSimilarity = new SimpleTextSimilarity();
double score1pk1 = textSimilarity.similarScore(text1, text1);
double score1pk2 = textSimilarity.similarScore(text1, text2);
double score1pk3 = textSimilarity.similarScore(text1, text3);
double score2pk2 = textSimilarity.similarScore(text2, text2);
double score2pk3 = textSimilarity.similarScore(text2, text3);
double score3pk3 = textSimilarity.similarScore(text3, text3);
System.out.println(text1 " 和 " text1 " 的相似度分值:" score1pk1);
System.out.println(text1 " 和 " text2 " 的相似度分值:" score1pk2);
System.out.println(text1 " 和 " text3 " 的相似度分值:" score1pk3);
System.out.println(text2 " 和 " text2 " 的相似度分值:" score2pk2);
System.out.println(text2 " 和 " text3 " 的相似度分值:" score2pk3);
System.out.println(text3 " 和 " text3 " 的相似度分值:" score3pk3);
运行结果如下:
我爱学习 和 我爱学习 的相似度分值:1.0
我爱学习 和 我爱读书 的相似度分值:0.5
我爱学习 和 他是黑客 的相似度分值:0.0
我爱读书 和 我爱读书 的相似度分值:1.0
我爱读书 和 他是黑客 的相似度分值:0.0
他是黑客 和 他是黑客 的相似度分值:1.0
java计算相似代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java相似的语言、java计算相似代码的信息别忘了在本站进行查找喔 。
推荐阅读
- html5中如何让文本居中,html5怎么文字居中
- postgresql9.3.564位的简单介绍
- 软件班毕业设计,软件类毕业设计
- 我的世界服务器浩方,我的世界一方世界服务器
- windows系统改xp的简单介绍
- 百度版ChatGPT将内测开放,百度内测版入口
- 玩竞技游戏火特别大怎么办,游戏竞技开火
- html5重力效果,重力模式什么意思啊
- mysql中怎么显示汉子 mysql数据库表中中文显示为?