泛型编程与增强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");
    }
}

运行截图
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

原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/278444.html

(0)
上一篇 2022年8月2日
下一篇 2022年8月2日

相关推荐

发表回复

登录后才能评论