第4关:泛型

第4关:泛型

  • 任务要求
  • 参考答案
  • 评论198

任务描述

本关任务:使用泛型创建集合对象。

相关知识

为了完成本关任务,你需要掌握: 1.什么是泛型;

2.如何使用泛型。

什么是泛型

什么是泛型呢?简单的来说,泛型可以理解为:类型参数,那什么又是类型参数呢?

我们知道一个方法void hello(String name)如果指定了一个字符串类型的参数,那方法的调用者就只能传递String类型的参数才能正确的使用这个方法了,否则就报错,其实泛型也是一样,只不过在这里泛型用在集合上,即指定集合中只能放某一种类型的元素

你要往ATM机中存钱,就只能放毛爷爷,而不能放冥币,这就是泛型,指定只能用一种类型

如何使用泛型

泛型使用的是一对尖括号定义的,如:List<String> 指定的就是在List集合中只能放String类型的数据。

接下来我们来一个对比评测,看一看使用泛型和不使用泛型的区别。

不使用泛型:

 
  1. List list1 = new ArrayList();
  2. list1.add("www.educoder.net");
  3. String str1 = (String)list1.get(0);

使用泛型:

 
  1. List<String> list2 = new ArrayList<String>();
  2. list2.add("www.educoder.net");
  3. String str2 = list.get(0); //可以发现在这里我们不用强转数据类型了

当然泛型不仅仅只有这么一点用途,在开发中处处可见泛型,在之后的章节中我们会更深一步的了解。

可能你会有疑问,为什么我要使用泛型啊,使用泛型有什么好处呢? 答:好处如下:

  1. 类型安全,通过知道使用泛型定义的变量的类型限制,编译器可以更有效地提高Java程序的类型安全;

  2. 消除强制类型转换,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。所有的强制转换都是自动和隐式的;

  3. 提高性能。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 创建一个只能存储String类型数据的List集合;

  • 将程序输入的数据存入List集合中;

  • 输出集合中所有的数据。

提示:list.size()方法可以获取集合的长度。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入: 张三 李四 王五

预期输出: 集合的第1个数据为:张三

集合的第2个数据为:李四

集合的第3个数据为:王五

package step4;

import java.util.*;

public class HelloWorld {

   

   

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        //程序会输入三次数据

        /********** Begin **********/

        List<String> list= new ArrayList<String>();

        //String input = sc.nextLine();  

        for(int i=1;i<=3;i++){

            list.add(sc.nextLine());//nextLine()方法用于读取输入中的下一行

        }

        //list.add(input);

        //list.add(sc);需要将Scanner对象中的输入转换为String类型再添加进入集合

        for(int i = 0;i < list.size() ;i++){

            System.out.println("集合的第" + (i+1) +"个数据为:" + list.get(i));

        }

        /********** End **********/

    }

   

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值