public class Test{
/**
* 获取两个整型数组之间的重复元素集合
* @param array1 数组参数1
* @param array2 数组参数2
* @return
*/
public List findSame(int array1[],int array2[]){
List result=new ArrayList();//重复元素结果集合
HashMap hashMap=new HashMap();//利用hashmap来寻找重复元素
for(int i=0;i<array1.length;i++){//将第一个数组加入hashmap
String temp=array1[i]+"";
hashMap.put(temp,temp);
}
for(int i=0;i<array2.length;i++){//遍历第二个数组
String temp=array2[i]+"";
if(hashMap.get(temp)!=null){//在已经存在第一个数组所有元素的hashmap里寻找第二数组里的元素
result.add(array2[i]);//将重复出现的元素加入结果集合
}
}
return result;
}
public static void main(String args[]){
long timeBegin=System.currentTimeMillis();
int a[] = {1, 6, 2, 8, 5, 8, 6, 9, 0};
int b[] = {4, 5, 4, 8, 7, 6, 2, 0};
//获取重复元素集合
List list=new Test().findSame(a, b);
//遍历输出重复元素
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
分享到:
相关推荐
`HashSet` 是一个无序的集合,它不允许重复元素。以下是 `HashSet` 的一些常见操作: * 创建一个 `HashSet`:`import java.util.HashSet; HashSet<Integer> numbers = new HashSet();` * 添加元素:`numbers.add(1)...
// 定义一个整型数组引用 intArray = new int[100]; // 创建一个长度为100的整型数组 ``` 或者可以使用单行声明和创建: ```java int[] intArray = new int[100]; // 声明并创建一个整型数组 ``` 访问数组中的...
例如,声明一个整型数组int[] nums = new int[5]; 这个数组可以存储5个整数。 二、数组操作 1. 访问元素:通过索引来访问数组元素,索引从0开始。例如,nums[0]表示数组的第一个元素。 2. 修改元素:直接通过索引...
这个例子展示了如何在一个循环中初始化两个数组,并使用一个函数来获取指定索引处的数组元素值。 ### 总结 以上分析了C语言中的一些基础概念,包括函数调用、变量声明、数组操作、循环控制和`goto`语句等。这些知识...
- **应用场景**:适用于需要快速查找和维护唯一性或重复性的元素集合场景,如关键字搜索、去重过滤等。 ##### 2. C++ Maps & Multimaps - **特性**:Maps和Multimaps提供键值对存储,其中Maps要求键值唯一,而...
2. 声明:在Java中,声明数组时需指定类型,例如`int[] numbers`声明一个整型数组。 3. 初始化:创建数组实例并分配内存空间,如`int[] numbers = new int[5]`,这将创建一个包含5个整数元素的数组。 4. 访问元素:...
例如,声明一个整型数组`int arr[10]`会创建一个能存储10个整数的数组。数组的索引从0开始,所以`arr[0]`到`arr[9]`分别对应数组中的第一个到第十个元素。 数组的使用包括初始化、访问元素和遍历数组。初始化时,...
例如,你可以使用`sort(arr, arr+n)`来对一个整型数组`arr`进行升序排序,其中`n`是数组的大小。此外,`sort()`函数还支持自定义比较函数,以满足不同的排序需求。 2. **查找算法**:`find()`函数用于在数组中查找...
这段代码展示了如何初始化一个整型数组以及如何遍历并打印出数组中的每一个元素。数组非常适合用于处理固定数量的数据集合。 #### 第二章:List——动态数组的力量 List 是一种可变长度的数组形式,它能够动态地...
对于两个不包含重复元素的有序顺序表(集合),我们可以高效地进行以下操作: - **并集**(Union):包含两个集合的所有不同元素。 - **交集**(Intersection):仅包含同时存在于两个集合中的元素。 - **差集**...
1. **顺序表结构定义**:使用一个结构体`struct SET`,包含一个字符指针`elem`来存储元素,一个整型变量`size`表示数组的大小,以及一个`length`记录实际元素个数。 2. **基本操作**: - `InitSet`:初始化集合,...
`表示声明了一个整型数组`numbers`。 - **长度属性**:数组有一个固定的长度属性`length`,可以通过该属性获取数组中元素的数量。 - **访问元素**:数组中的元素可通过索引进行访问,如`int firstElement = numbers...
- 当两个键的哈希值相同时,它们在第三个数组中存储相同的索引,然后可以通过索引找到在第二个数组中相对应的键值对。 4. **性能分析**: - **插入**:插入操作可能需要计算键的哈希值并更新三个数组。虽然可能比...
这里需要用到循环结构,以及一个接受两个整数参数并返回长整型的函数。 数组在处理这类问题时有着显著的优势,特别是在需要存储大量相关数据时。比如在计算30个人的平均分的例子中,如果使用单独的变量来存储每个...
Set接口代表一个不允许包含重复元素的集合。它的主要实现类有HashSet和TreeSet。HashSet基于散列表(哈希表),不保证集合中元素的顺序,但能够提供较快的存取速度。TreeSet基于红黑树,可以保持元素的自然排序,...
例如,我们可以使用`Arrays.sort(scores)`对整型数组进行排序。 生成随机数时,可以使用`java.util.Random`类,如`Random r = new Random();`。在处理二维数组时,通常需要双重循环来遍历所有元素。 总之,理解并...
算法的实现通常需要两个数据结构:一个布尔数组vis用于记录顶点是否已经被访问,另一个整型数组d用于存储每个顶点到集合S的最短距离。初始化时,除了起点s的d[s]设为0,其他顶点的d值设为一个极大的数,表示没有可达...
4. **类的定义与方法**:创建了一个名为`IntegerSet`的类,包含一个整型数组`a`、一个表示数组已使用位置的变量`k`以及一个表示总数量的变量`number`。类中定义了一个`srpx()`方法,用于接收用户输入并进行冒泡排序...
数组和集合之间的主要区别在于灵活性和效率。数组通常在内存中连续存储,访问速度较快,但大小固定且不易扩展。集合则更加灵活,可以动态增加或减少元素,但可能因为内部实现(如链表)导致访问速度较慢。在实际开发...
`这条语句,从而避免集合中出现重复元素。 2. **`InSet`方法中的元素匹配**: 在`InSet`方法中,遍历集合的元素以检查指定的字符`c`是否存在于集合中。注释提示需要添加代码来比较元素。这里的代码实现已经足够,...