如何得到数组的元素种类
时间: 2024-03-05 15:52:18 浏览: 16
要得到数组的元素种类,可以遍历数组并将每个元素存储到一个集合中,例如 Set 或 HashSet。由于集合不能存储重复的元素,所以最终集合中的元素个数就是数组的元素种类数。以下是一个 Java 代码示例:
```java
int[] arr = {1, 2, 3, 2, 1, 4, 5};
Set<Integer> set = new HashSet<>();
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
int numTypes = set.size();
System.out.println(numTypes); // 输出 5
```
在这个示例中,数组 arr 中有 7 个元素,但是只有 5 种不同的元素。我们使用 HashSet 存储这些元素,并且最终集合中的元素个数就是 5,因此输出结果是 5。
相关问题
python中如何得到数组的元素种类
在 Python 中,可以使用 set() 函数获取数组的元素种类。set() 函数将数组转换为一个集合,由于集合中不能有重复的元素,因此最终集合的元素个数就是数组的元素种类数。以下是一个示例代码:
```python
arr = [1, 2, 3, 2, 1, 4, 5]
num_types = len(set(arr))
print(num_types) # 输出 5
```
在这个示例中,数组 arr 中有 7 个元素,但是只有 5 种不同的元素。我们使用 set() 函数将这些元素转换为集合,并使用 len() 函数获取集合的元素个数,即为数组的元素种类数,因此输出结果是 5。
用什么函数得到数组中的元素种类
在 C++ 中,可以使用 STL 中的 unordered_map 来实现哈希表,从而得到数组中的元素种类。具体实现可以参考下面的代码示例:
```c++
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 2, 1, 4, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
unordered_map<int, int> mp;
for (int i = 0; i < n; i++) {
mp[arr[i]]++;
}
int cnt = 0;
for (auto it = mp.begin(); it != mp.end(); it++) {
cnt++;
}
cout << cnt << endl;
return 0;
}
```
上述代码中,首先定义了一个整型数组 arr 和一个整型变量 n,表示数组的长度。然后,使用 unordered_map 来记录每个元素出现的次数。遍历数组中的每个元素,如果该元素已经在 unordered_map 中,则将该元素对应的值加1;否则,在 unordered_map 中新增该元素,并将对应的值初始化为1。最后,遍历 unordered_map 中的每个键值对,统计键的数量即可得到数组中的元素种类。