String  A:  d,g,e,t,u,j;
String  B:  g,r,y,t,j,q;怎么取出在A中同时在B中的字符串: g,t,j

解决方案 »

  1.   

    1、split,add to java.util.Set A and B
    2、B.retainAll(A)
      

  2.   

    public static void main(String[] args) {
         List<String> listA = new ArrayList<String>();
         List<String> listB = new ArrayList<String>();
         String A = "d,g,e,t,u,j";
         String B = "g,r,y,t,j,q";
         //按逗号分隔后放入对应list
         String [] arrayA = A.split(",");
         String [] arrayB = B.split(",");
         for(int i = 0; i < arrayA.length; i++) {
         listA.add(arrayA[i]);
         }
         for(int i = 0; i < arrayB.length; i++) {
         listB.add(arrayB[i]);
         }
         //使用retainAll取交集
         listA.retainAll(listB);
         System.out.println(listA);
        }listA中就是你要的字符串
      

  3.   

    public static void main(String arg[]) {
    String A = "d,g,e,t,u,j";
    String B = "g,r,y,t,j,q";
    List<String> lista = new ArrayList<String>(Arrays.asList(A.split(",")));
    List<String> listb = new ArrayList<String>(Arrays.asList(B.split(",")));
    for (int i = lista.size() - 1; i >= 0; i--) {
    if (!listb.contains(lista.get(i))) {
    lista.remove(lista.get(i));
    }
    }
    System.out.println(lista);
    }
      

  4.   

    public static void main(String arg[]) {
    String A = "d,g,e,t,u,j";
    String B = "g,r,y,t,j,q";
    List<String> lista = new ArrayList<String>(Arrays.asList(A.split(",")));
    List<String> listb = new ArrayList<String>(Arrays.asList(B.split(",")));
    lista.retainAll(listb);
    System.out.println(lista);
    }
      

  5.   

    O(m+n)http://blog.csdn.net/xiaorang_java/article/details/8947162
      

  6.   

    用java的api提供的方法是相当有效率的
      

  7.   

    retainAll会不会有问题?
    public boolean retainAll(Collection<?> c)仅在此 collection 中保留指定 collection 中所包含的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。
    此实现在此 collection 上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的 collection 中。如果不是,则使用迭代器的 remove 方法将其从此 collection 中移除。注意,如果 iterator 方法返回的迭代器无法实现 remove 方法,并且此 collection 包含一个或多个在指定 collection 中不存在的元素,那么此实现将抛出 UnsupportedOperationException。
      

  8.   

    哦,主要原因是
    如果 iterator 方法返回的迭代器无法实现 remove 方法
      

  9.   

    往set中放,因为set不可能出现相同的字符串,因此放不进去的就是所需要的:
    for(//遍历){
    if(set.contains(a[i])){
    String s+=a[i]
    }else{
    set.add(a[i]);
    }
    }
    return s;//s就是所求