jersey
我使用API检索了 200 条推文。我想找到两条带有longest common substring
. 这就是我所拥有的。tweetList
是一个ArrayList
对象Tweet
。comapreTweets
方法比较推文对象的最长子字符串。
Tweet t1=new Tweet();Tweet t2=new Tweet();
int longestString=0;
for(int i=0;i<tweetList.size();i++)
{int store=0;Tweet comparer=null;
for(int j=i+1;j<tweetList.size();j++)
{
if(j!=i){
int result=tweetList.get(i).compareTweets(tweetList.get(j));
if(result>store){
store=result;
comparer=tweetList.get(j);
}}
}
if(longestString<store)
{
longestString=store;
t1=tweetList.get(i); t2=comparer;
}
}
如果我检索 200 条推文,那么这将循环大约。40000 次。我需要一种更有效的方法。
编辑
这个循环还以倒序比较相同的推文假设我的tweetList
包含{a,b,c,d}
; 什么时候i=1
和j=3
比较是在 之间b & d
;当i=3
和j=1
比较是d & b
。如何避免这种情况。
SOLUTION而不是j=0
它应该是j=i+1
. 它循环了很多19701
次。