永发信息网

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

答案:4  悬赏:0  手机版
解决时间 2021-02-19 11:58
例如int[] arr1={2,2,2}; int[] arr2={2,2,5}; 变为int[] arr3={2,2}; 麻烦具体点,谢谢。
最佳答案
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());
    }
}
全部回答
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); } 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; } }
public class Test { public static void main(String[] args) { int[] arr1={2,2,2}; int[] arr2={2,2,5}; List 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); } public static List findSameElementIn(int[] arr1,int[] arr2) { List sameArrayList = new ArrayList();//用来存放两个数组中相同的元素 Set tempSet = new HashSet();//用来存放数组1中的元素 for(int i=0;i
  • 3楼网友:零点过十分
  • 2021-02-19 08:05
先将数组转成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()
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯