我是靠谱客的博主 欣慰铃铛,最近开发中收集的这篇文章主要介绍【JAVA练习-----集合API】练习ArrayList 集合、Iterator 迭代器、foreach循环、HashSet的使用。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实验十四  在项目中使用集合API

一、      实验目的

              练习Java集合API的使用。

二、      实验内容

  练习ArrayList 集合、Iterator 迭代器、foreach循环、HashSet的使用。

实验步骤如下:

一、有 2 个 ArrayList,元素如下: array1 = "a","b","a","c","d",array2="e","f","a","d","g",将两个集合重复项去除后合并成一个集合,并输出集合中的元素。 

(1) 创建 ArrayList array1。 

(2) 使用 add 方法为 array1 存放对应的元素。

(3) 创建 ArrayList array2。 

(4) 使用 add 方法为 array2 存放对应的元素。

(5) 创建 HashSet 用于存放去除重复的元素。

(6) 遍历 array1,获取到每个元素,将每个元素添加到HashSet 中。

(7) 遍历 array2,获取到每个元素,将每个元素添加到HashSet 中。

(8) 输出 HashSet 中去除重复后的元素。

二、利用键盘录入,输入一个字符串,统计该字符串中各个字符的数量如 用 户 输 入 字 符 串 :"hello world java", 程 序 输出结果:h(1)e(1)l(3)o(2) (2)w(1)r(1)d(1)j(1)a(2)v(1)。 

(1)创建键盘输入对象 

(2)使用 nextLine 从键盘中读取一行内容

(3)将字符串转换成字符数组 

(4)创建 map 集合,用来存放字符:key 是字符value 是字符出现的个数

(5)遍历字符数组 

(6)拿到每个字符,去 map 中查看是否有保存对应的次数

(7)如果这个字符没有保存次数,就设置为 1 次

(8)如果这个字符有保存次数,就设置为原来的次数+1 次

(9)按题目要求拼接字符串 

(10)输出结果

三、实验代码

本实验的实验代码如下所示:

import java.util.*;

import static java.util.Arrays.asList;

public class Arraylist_test {
    public static void main(String[] args){
        test1();
        test2();
    }

    public static void test1(){

        // 保存两个列表的数据信息
        String[] str = {"a","b","c","d"};
        String[] str2 = {"e","f","a","d","g"};

        // 将数据保存到集合中
        List array1 = new ArrayList(Arrays.asList(str));
        List array2 = new ArrayList(Arrays.asList(str2));

        // 创建hashset,用于保存数据(hashset具有数据唯一性)
        HashSet hashset = new HashSet<>();

        // 使用迭代器遍历array1
        Iterator iterator = array1.iterator();
        while(iterator.hasNext()){
            hashset.add(iterator.next());
        }

        // 使用迭代器遍历array2
        Iterator iterator1 = array2.iterator();
        while(iterator1.hasNext()){
            hashset.add(iterator1.next());
        }

        // 使用迭代器遍历hashset,将hashset中的数据输出
        Iterator iterator2 = hashset.iterator();
        while(iterator2.hasNext()){
            System.out.println(iterator2.next());
        }
    }

    public static void test2(){
        // 获得从键盘输入的字符串
        Scanner string = new Scanner(System.in);
        System.out.println("请输入一个字符串,后续为您计算每个字符出现的次数");
        String str = string.nextLine();
        // 创建map
        Map map = new TreeMap();
//使用正则表达式,逻辑可以说通,但是由于map.get(c)数据类型不匹配,不可以用于+,所以不采用这一种运算方式。在不强制使用key时,也可以进行数据类型的转换使用此方法(Object-》String-》int)
//        for(char c:chars){
//            map.put(c,map.get(c) != null ? map.get(c):1);
//        }
//        System.out.println(map.toString());

        // 计算key出现的次数,并进行保存
        for(int i=0;i<str.length();i++){
            char key = str.charAt(i);
            if(map.get(key)==null){
                map.put(key,1);
            }
            else{
                int num = Integer.parseInt(String.valueOf(map.get(key)));
                num = num+1;
                map.put(key,num);
            }
        }
        System.out.println(map.toString());
    }
}

四、实验总结

对于实验1:

        本实验去重并不是通过去重算法实现的,本实验中借助hashset的数据唯一性,将两个ArrayList中的数据输入到hashset中完成数据的去重工作。

对于实验2:

        对于实验2,主要容易出现问题的地方在于:map.get(key),该函数的参数是Object,该函数在key出现过的返回值也为Object,而我们需要进行key出现次数的累加,就需要进行数据类型的转换,我们需要把map.get(key)从Object转为String,然后再将String转为int类型,进行+1操作,完成key出现次数的增加。

        数据类型转换代码如下:

Integer.parseInt(String.valueOf(map.get(key)))

最后

以上就是欣慰铃铛为你收集整理的【JAVA练习-----集合API】练习ArrayList 集合、Iterator 迭代器、foreach循环、HashSet的使用。的全部内容,希望文章能够帮你解决【JAVA练习-----集合API】练习ArrayList 集合、Iterator 迭代器、foreach循环、HashSet的使用。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部