首页 > 文章列表 > Java中的集合处理练习题

Java中的集合处理练习题

处理 Java集合 练习题
398 2023-06-21

Java是一门极其流行的编程语言,它广泛应用于各种场景,包括Web开发、移动应用开发、桌面应用程序等。Java提供了丰富的集合类库来帮助开发人员处理各种数据结构,包括数组、链表、栈、队列和映射等。

在Java中,集合是一种存放数据项的容器。Java集合类库可以分为两个层次结构:集合接口和集合实现类。集合接口是一组规范,定义了一系列的方法,用于操作集合中的元素。集合实现类是基于接口的现实,提供了具体的实现细节,如ArrayList,LinkedList,HashSet等。

在本文中,我们将介绍一些常见的Java集合处理练习题,帮助读者提高对Java集合操作的掌握。

  1. 找出数组中的重复元素

给定一个整数数组,找出其中的重复元素。例如,对于数组{1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 5},应输出1, 4和5。

解决这个问题的一种方法是使用HashSet。我们可以遍历数组中的每个元素,并将它们添加到HashSet中。如果一个元素已经存在于HashSet中,就说明它是重复的。以下是代码实现:

int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 5};
Set<Integer> set = new HashSet<>();
Set<Integer> duplicates = new HashSet<>();

for (int i : arr) {
    if (!set.add(i)) {
        duplicates.add(i);
    }
}

System.out.println("重复元素为:" + duplicates);
  1. 合并两个有序数组

给定两个有序整数数组,将它们合并为一个排序数组。例如,对于数组{1, 3, 5, 7}和{2, 4, 6, 8},应输出{1, 2, 3, 4, 5, 6, 7, 8}。

解决这个问题的一种方法是,创建一个新的数组来保存合并后的结果。接着,我们可以使用两个指针分别指向两个数组中的元素,并比较它们的大小。将较小元素添加到新数组中,并将指针向前移动一位。以下是代码实现:

int[] arr1 = {1, 3, 5, 7};
int[] arr2 = {2, 4, 6, 8};
int len1 = arr1.length;
int len2 = arr2.length;
int[] result = new int[len1 + len2];

int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
    if (arr1[i] < arr2[j]) {
        result[k++] = arr1[i++];
    } else {
        result[k++] = arr2[j++];
    }
}

while (i < len1) {
    result[k++] = arr1[i++];
}

while (j < len2) {
    result[k++] = arr2[j++];
}

System.out.println(Arrays.toString(result));
  1. 计算一个字符串中每个字符出现的次数

给定一个字符串,计算其中每个字符出现的次数。例如,对于字符串"Java is a great language",应输出字符'J'出现1次,字符'a'出现4次等。

解决这个问题的一种方法是,遍历字符串中的每个字符,并将它们添加到HashMap中。将每个字符作为键,出现次数作为值。以下是代码实现:

String str = "Java is a great language";
Map<Character, Integer> map = new HashMap<>();

for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);

    if (c == ' ') {
        continue;
    }

    if (map.containsKey(c)) {
        map.put(c, map.get(c) + 1);
    } else {
        map.put(c, 1);
    }
}

for (Map.Entry<Character, Integer> entry : map.entrySet()) {
    System.out.println("字符'" + entry.getKey() + "'出现" + entry.getValue() + "次。");
}

Java集合是Java编程的重要组成部分。本文介绍了一些常见的Java集合处理练习题,有助于读者加深对Java集合操作的理解和应用。