栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【java】List接口和泛型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【java】List接口和泛型

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class ListTest01 {
    public static void main(String[] args) {
        List list = new ArrayList();//因为要使用List接口中的方法,所以这里要使用List创建对象。
        //添加元素
        list.add("A");//默认都是向集合末尾添加元素
        list.add("B");
        list.add("C");
        //向指定位置添加元素
        list.add(1,"haha");//向集合下标1的位置添加haha
        //迭代
        Iterator it = list.iterator();
        while(it.hasNext()){
            Object a = it.next();
            System.out.println(a);
        }
        //获取元素
        Object f1 = list.get(0);//获取第一个元素
        //通过下标遍历(list接口特有方式)
        for (int i = 0; i < list.size(); i++) {
            Object element = list.get(i);
            System.out.println(element);
        }
    }
}
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;

public class ArrayListTest01 {
    public static void main(String[] args) {
        //默认初始容量为10
        List list = new ArrayList();
        //指定初始容量
        List list1 = new ArrayList(100);
        //创建一个HashSet集合
        Collection cl = new HashSet();
        cl.add(100);
        cl.add(400);
        cl.add(900);
        cl.add(29);
        //将HashSet集合转换称List集合
        List list2 = new ArrayList(cl);
        for (int i = 0; i < list2.size(); i++) {
            System.out.println(list2.get(i));
        }
    }
}

泛型:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;



public class GenericTest01 {
    public static void main(String[] args) {
        
        //使用泛型之后
        //使用泛型List后,表示List集合中只允许存储Animal类型的数据
        //用泛型来指定集合中存储的数据类型
        List list = new ArrayList<>();
        Dog d = new Dog();
        Bird b = new Bird();
        list.add(d);
        list.add(b);
        //获取迭代器,表示这个迭代器迭代的是Animal类型
        Iterator it = list.iterator();
        while(it.hasNext()){
            //使用泛型后,每一次迭代返回的类型都是Animal类型
            Animal animal = it.next();
            //此时调用Animal不需要强制类型转换,可直接调用
            //但是调用子类特有方法还是需要进行向下转型
            animal.move();
            if(animal instanceof Bird){
                Bird bird = (Bird)animal;
                bird.fly();
            }
            if(animal instanceof Dog){
                Dog dog = (Dog)animal;
                dog.eat();
            }
        }
    }
}

class Animal{
    public void move(){
        System.out.println("移动");
    }
}
class Bird extends Animal{
    public void fly(){
        System.out.println("飞");
    }
}
class Dog extends Animal{
    public void eat(){
        System.out.println("吃");
    }
}

自定义泛型:

public class GenericTest02 {  //这里<>里的为标识符,可自定义,但通常用E(Element)和T(Type)
    public void doSome(E o){    //这里方法中的E需要与类定义的相同
        System.out.println(o);
    }
    public static void main(String[] args){
        //创建对象时的<>需要指定的类型,如Animal,String,Integer等等
        GenericTest02 gt = new GenericTest02<>();
        gt.doSome("括号里写的东西需要与创建对象时写泛型类型相同");
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号