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};
麻烦具体点,谢谢。 展开
int[] arr2={2,2,5};
变为int[] arr3={2,2};
麻烦具体点,谢谢。 展开
3个回答
展开全部
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());
}
}
展开全部
先将数组转成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()
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()
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |