java 中怎么抽取两个数组中公有的元素

例如int[]arr1={2,2,2};int[]arr2={2,2,5};变为int[]arr3={2,2};麻烦具体点,谢谢。... 例如int[] arr1={2,2,2};
int[] arr2={2,2,5};

变为int[] arr3={2,2};

麻烦具体点,谢谢。
展开
 我来答
路漫漫的教学笔记
推荐于2017-09-14 · TA获得超过399个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:134万
展开全部
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MainTest {

    public static void main(String[] args) {
        String[] a = { "2", "2", "5" };// 数组a
        String[] b = { "2", "2", "2" };// 数组b
        List<String> bList = new ArrayList<String>();// 数组b转换的list
        Collections.addAll(bList, b);// 把数组b的内容放到bList里去
        List<String> commonList = new ArrayList<String>();// 保存a和b共同元素的list
        // 循环a数组
        for (String aValue : a) {
            // 判断b中是否包含元素aValue,包含则增加为a和b的共元素
            if (bList.contains(aValue)) {
                commonList.add(aValue);
            }
        }

        // 打印commonList
        System.out.println(commonList.toString());
    }
}
王飞163
2015-04-21 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:71.1万
展开全部
先将数组转成List,list1,list2 新建一个list3

for(int i=0;i<list2.size();i++){
int a =list1.indexof(list2.get(i))
if(a!=-1){
list3.add(list2.get(i))

}
}
return list3.toArray()
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友059e2647f
2015-04-21
知道答主
回答量:40
采纳率:0%
帮助的人:22.9万
展开全部
public class Test {
public static void main(String[] args) {
int[] arr1={2,2,2};
int[] arr2={2,2,5};
List<Integer> sameArrayList = findSameElementIn(arr1,arr2);//调用方法将数组中的元素放入set集合中去重
int [] array = new int[sameArrayList.size()];//根据返回的数据长度新建数组
for (int i = 0; i < sameArrayList.size(); i++) {
array[i]=sameArrayList.get(0);//将返回的数据放入数组中
}
System.out.println(array);
}

/**

* 找出两个数组中相同的元素

* @param arr1

* @param arr2

* @return 返回相同的元素

*/

public static List<Integer> findSameElementIn(int[] arr1,int[] arr2) {

List<Integer> sameArrayList = new ArrayList<Integer>();//用来存放两个数组中相同的元素

Set<Integer> tempSet = new HashSet<Integer>();//用来存放数组1中的元素

for(int i=0;i<arr1.length;i++) {

tempSet.add(arr1[i]);//把数组1中的元素放到Set中,可以去除重复的元素

}

for(int j=0;j<arr2.length;j++) {
//把数组2中的元素添加到tempSet中

//如果tempSet中已存在相同的元素,则tempSet.add(array2[j])返回false

if(!tempSet.add(arr2[j])) {

//返回false,说明当前元素是两个数组中相同的元

sameArrayList.add(arr2[j]);

}

}

return sameArrayList;

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式