ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

泛型编程与增强for循环

2022-08-02 12:35:34  阅读:148  来源: 互联网

标签:编程 list Cat add 循环 泛型 new Bird


泛型:只在程序编译阶段起作用,给编译器参考的,泛型的优点就是统一了集合中的元素类型,取出元素时不太需要大量地向下转型。但是也会导致集合中的元素缺乏多样性!

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");
    }
}

运行截图
image

自定义泛型与增强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);
    }
        }

}

运行截图
image

标签:编程,list,Cat,add,循环,泛型,new,Bird
来源: https://www.cnblogs.com/hzxiang/p/16543327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有