我有两个ArrayList:
ArrayList<String> input = new ArrayList<String>();
ArrayList<String> output = new ArrayList<String>();
input contains these data:
input= {a b c d, a g f r, d e a b, k c s x, f g h s}
output contains:
output = {a b c f, g f x r, d e f g}
我想比较这些列表的价值,例如: input(0)包含a,b,c和d,而output(0)包含a,b,c和f。如果我们比较,我们可以得到a,b和c是相似的值意味着两个数组都有3个相似的值。 / p>
Iteration<String> itr = input.iterator();
while(itr.hasNext()) {
//should i do this to get each value in each row?
for(String s : input) {
StringTokenizer b = new StringTokenizer(s," ");
String[] temp_input = new String[n];
int i = 0;
while(b.hasMoreTokens()) {
temp_input[i] = b.nextToken();
}
}
}
所以结果应该是输入和输出之间相似值的数量。 提前谢谢..
答案 0 :(得分:0)
我是否可以假设数组已排序,您只对比较input[i]
到output[i]
感兴趣?
如果是这样,有一个简单的解决方案:
int counter = 0;
int length = Math.min(input.size(), output.size());
String[] data = null;
for (int i = 0; i < length; ++i ) {
data = input.get(i).split(" "); // division by space
for(String value : data) {
if ( output.get(0).contains(value) ) ++counter;
}
}
我应该提一下,这个解决方案并不是最佳性能,但根据您的问题规范,它可能是合适的。
答案 1 :(得分:0)
这是一个想法:
for(String string1: arrayOfStrings1)
{
for(String string2: arrayOfStrings2)
{
if(string1.equals(string2))
{
//increase counter or do whatever you would like here...
}
}
}