JAVA中泛型在函数中的使用方法 List的两种使用

这篇博客详细介绍了Java中的泛型方法和泛型类的定义与使用,包括如何在方法中使用泛型以及创建泛型类。此外,还展示了List的两种使用方式,一种是限制元素类型的List,另一种则没有进行类型检查。最后,通过一个示例展示了如何使用List集合内嵌Map集合来表示二维表数据,并进行了遍历操作。
摘要由CSDN通过智能技术生成

泛型方法(泛型类)的定义与使用

使用泛型方法

package JAVA_Test5;

import java.util.Arrays;

public class Collection {
    //泛型的使用方法
    //在函数中使用
    public static <T> void changePosion(T []array, int i, int j){
        T temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }

    public static void main(String[] args) {
        //第一种方法,定义泛型方法
        String []strs = {"1","2","3"};
        /*changePosion(strs,1,2);
        System.out.println(Arrays.toString(strs));*/
        Integer []ints = {1,2,3,4};
        /*changePosion(ints,1,2);
        System.out.println(Arrays.toString(ints));*/
        //第二种定义泛型类
        ArrayUtils<String> a1 = new ArrayUtils<>();
        a1.reverse(strs);
        System.out.println(Arrays.toString(strs));
        ArrayUtils<Integer> a2 = new ArrayUtils<>();
        a2.ChangePosition(ints,1,3);
        System.out.println(Arrays.toString(ints));
    }
}

泛型类

package JAVA_Test5;

public class ArrayUtils<T> {
    public void ChangePosition(T[] array,int i,int j){
        T temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    public void reverse(T[] array){
        for(int i=0,j=array.length-1; i<j; ++i,--j){
            T temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }

}

在这里插入图片描述

List的两种使用

package JAVA_Test5;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListForUse {

    public static void main(String[] args) {
        List<String> stringList = new ArrayList<>();
        stringList.add("hello");
        //stringList.add(1);报错,因为只能add进去String类型的
        stringList.add("java");
        Object[] s = stringList.toArray();
        System.out.println(Arrays.toString(s));

        //不使用泛型
        List l = new ArrayList<>();
        l.add("hello");
        l.add(2020);  //不进行类型检验
        l.add(2020.996);
        Object []s2 = l.toArray();
        System.out.println(Arrays.toString(s2));
        System.out.println(l.size());
    }
}

在这里插入图片描述

List集合内嵌Map集合表示二维表数据的示例程序

package JAVA_Test5;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

//List集合内嵌Map集合表示二维表数据的示例程序(MapInList.java)
public class MapInList {
    public static void main(String[] args) {
        List<Map<String,Object>> mapList = new ArrayList<>();
        Map<String,Object> person1 = new HashMap<>();
        person1.put("id",1);
        person1.put("name","蜘蛛侠");
        person1.put("function","能爬树");
        person1.put("power",1000);

        Map<String,Object> person2 = new HashMap<>();
        person2.put("id",2);
        person2.put("name","钢铁侠");
        person2.put("function","会打铁");
        person2.put("power",2000);

        mapList.add(person1);
        mapList.add(person2);

        //遍历
        for(int i=0; i<mapList.size(); ++i){
            System.out.println(mapList.get(i));
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛济维的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值