我有兩個字符串列表,其中包含大約100個字符串項目,每個列表中有一些是常見的。如何從java中的兩個arraylist中獲取常用項目?
我想獲得這兩個列表共同的項目,並將其存儲在另一個列表中。
這是怎麼做到的。請幫忙。
我有兩個字符串列表,其中包含大約100個字符串項目,每個列表中有一些是常見的。如何從java中的兩個arraylist中獲取常用項目?
我想獲得這兩個列表共同的項目,並將其存儲在另一個列表中。
這是怎麼做到的。請幫忙。
您可以使用列表
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MainClass {
public static void main(String args[]) {
String orig[] = { "a", "b", "b", "c" };
String act[] = { "x", "b", "b", "y" };
List origList = new ArrayList(Arrays.asList(orig));
List actList = Arrays.asList(act);
origList.retainAll(actList);
System.out.println(origList);
}
}
的方法的retainAll這將打印[B,B]
listA.retainAll(listB);
你想要什麼叫做交集。 (或multiset,如果你想看到幾個副本)。
簡單但有效的解決方案是對兩個數組進行排序並遍歷它們。
for(int i = 0; i < a.length();)
{
for(int j = 0; j < b.length();)
{
int comparison = a[i].compareTo(b[j]);
if(comparison == 0)
{
// Add a[i] or b[j] to result here.
// If you don't want duplicate items
// in result, compare a[i] to
// last item in result and add
// only if a[i] is strictly greater.
++i;
++j;
}
else if(comparison < 0)
++i;
else
++j
}
}
如果字符串是足夠長的時間,你應該從第一列表添加到HashSet
串和遍歷第二個數組檢查,如果元素是集合。
可以重複嗎?也就是說,可以有'a,b,b,c'和'x,b,b,a',並且你想要'b's? – fge
對本網站有重複問題的答案寫作答案,並表明不付出任何努力只會促使人們繼續努力並仍然獲得答案。 – csmckelvey