泛型编程与增强for循环
2022/8/2 14:52:56
本文主要是介绍泛型编程与增强for循环,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
泛型:只在程序编译阶段起作用,给编译器参考的,泛型的优点就是统一了集合中的元素类型,取出元素时不太需要大量地向下转型。但是也会导致集合中的元素缺乏多样性!
package com.javastudy.example09; import javax.swing.text.html.HTMLDocument; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class FanXing { public static void main(String[] args) { //不使用泛型 List list=new ArrayList(); list.add(new Bird()); list.add(new Cat()); Iterator it=list.iterator(); while(it.hasNext()){ Object obj=it.next(); //不使用泛型 向下转型 if(obj instanceof Bird){ Bird x=(Bird)obj; x.move(); } if(obj instanceof Cat){ Cat x=(Cat)obj; x.move(); } } System.out.println("===================="); //使用泛型 List<Bird> list2=new ArrayList<Bird>(); list2.add(new Bird()); //list2.add(new Cat()); 错误,不兼容 Iterator<Bird> it2=list2.iterator(); while(it2.hasNext()){ Bird b=it2.next(); b.move(); } //泛型的自动类型推断 List<Cat> list3=new ArrayList<>(); list3.add(new Cat()); //list3.add(123); 错误 } } class Bird{ public void move(){ System.out.println("bird fly"); } } class Cat{ public void move(){ System.out.println("cat floot"); } }
运行截图
自定义泛型与增强for循环
package com.javastudy.example09; import java.util.ArrayList; import java.util.*; public class DiyFanX_ForEach<c123>{ public void doS(c123 x){ System.out.println(x); } public static void main(String[]args){ DiyFanX_ForEach<String> diy=new DiyFanX_ForEach(); diy.doS("123"); //增强for循环 System.out.println("================="); List<String> list=new ArrayList<>(); list.add("123"); list.add("555"); list.add("666"); //遍历 for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } System.out.println("================="); for (String s:list) { System.out.println(s); } } }
运行截图
这篇关于泛型编程与增强for循环的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding