java集合框架--泛型方法&泛型集合&泛型优点(代码片段)

Z&&Y Z&&Y     2022-12-19     553

关键词:

1. 泛型方法


MyGenericMethod.java

package generic;


public class MyGenericMethod 
    /**
     * MethodName: show
     * Description: 泛型方法, 用于展示任意类型的数据
     *
     * @return void
     * @date 2021/8/9 20:34
     * @params: [t]
     * @author Tianjiao
     */
    public <T> void show(T t) 
        System.out.println("泛型方法" + t);
    

测试:

    public static void main(String[] args) 
        MyGenericMethod genericMethod = new MyGenericMethod();
        genericMethod.show(520);
        genericMethod.show("五二零");
        genericMethod.show(new Integer(520));
    

运行结果:


2. 泛型集合

示例代码:

package list;

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

/**
 * List子接口的使用(一)
 * 特点:1.有序有下标 2.可以重复
 * 1.添加元素
 * 2.删除元素
 * 3.遍历元素
 * 4.判断
 * 5.获取位置
 */
public class Demo3 
    public static void main(String[] args) 
        //        创建集合
        List<String> list = new ArrayList<>();
        //1.添加元素 注意默认是添加到末尾
        list.add("zhou");
        list.add("tian");
        list.add(0, "jiao");//插入操作 在下标为0的元素前面插入 "jiao"
        System.out.println("元素个数:" + list.size());
        System.out.println("集合内容: " + list.toString());
        System.out.println();
        /*
        2.删除元素 这里删除的下标为0的元素
        如果要删除元素内容为0的元素 =>  list.remove(new Integer(0));
         */
        list.remove(0);
        //list.remove("tian"); 删除元素内容为"tian"的元素
        System.out.println("删除下标为0的元素和元素内容为\\"tian\\"的元素之后:" + list.size());
        System.out.println(list.toString());
        System.out.println();
        //3.遍历元素
        //3.1 使用for遍历
        System.out.println("---------------使用普通for循环遍历---------------");
        for (int i = 0; i < list.size(); ++i) 
            /*
            这里 get(index); 是根据元素的下标获取元素
             */
            System.out.print(list.get(i) + "\\t");
        
        System.out.println();

        System.out.println("---------------使用增强for循环遍历---------------");
        //3.2 使用增强for
        for (Object object : list) 
            System.out.print(object + "\\t");
        
        System.out.println();

        //3.3 使用迭代器
        System.out.println("---------------使用Iterator迭代器遍历---------------");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) 
            System.out.print(iterator.next() + "\\t");
        
        System.out.println();

        //3.4使用列表迭代器,listIterator可以双向遍历,添加、删除及修改元素。
        System.out.println("---------------使用listIterator列表迭代器遍历---------------");
        ListIterator<String> listIterator = list.listIterator();
        //从前往后
        System.out.println("\\n从前往后遍历元素:");
        while (listIterator.hasNext()) 
            System.out.print(listIterator.next() + "\\t");
        
        //从后往前(此时“遍历指针”已经指向末尾)
        System.out.println("从后往前遍历元素:");
        while (listIterator.hasPrevious()) 
            System.out.print(listIterator.previous() + "\\t");
        

        //4.判断
        System.out.println();
        System.out.println("列表是否为空: " + list.isEmpty());
        System.out.println("列表是否包含'jiao': " + list.contains("jiao"));
        //5.获取位置
        System.out.println();
        System.out.println("第一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.indexOf("jiao"));
        System.out.println("最后一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.lastIndexOf("jiao"));

        //截取集合 截取下标为[0,1)的元素
        List<String> myList = list.subList(0, 1);
        System.out.println("\\n截取下标为[0,1)的元素" + myList);
    

运行结果:


3. 泛型优点

  1. 提高代码重用性
        genericMethod.show(520);
        genericMethod.show("五二零");
        genericMethod.show(new Integer(520));
  1. 防止类型转换异常,提高代码的安全性。
	// 现在集合里面只可以存放String类型的数据 不然会报错
    List<String> list = new ArrayList<>();


javase集合框架——泛型(代码片段)

目录一、为什么要有泛型二、在集合中使用泛型2.1集合使用泛型2.2Comparable类和Comparator比较器使用泛型 1)Comprable类使用泛型2)Comparator使用泛型三、自定义泛型(泛型类、泛型接口;泛型方法)3.1泛型类/泛型... 查看详情

第10篇-java集合框架-java泛型

第10篇-JAVA集合框架-JAVA泛型每篇一句 :所有的不甘,都是因为还心存梦想初学心得:不是每件事都注定会成功,但是每件事都值得一试(笔者:JEEP/711)[JAVA笔记|时间:2017-04-15|JAVA集合框架/JAVA泛型]1.JAVA集合框架概念通俗的说,... 查看详情

java集合框架和泛型

---恢复内容开始---  集合:用来存储多个元素数组和集合区别:  数组的长度是固定的;集合的长度是可变的  数组存储的类型是同一类,可以存储基本数据类型;集合存储的都是对象,对象类型可以不一致 java集合... 查看详情

在泛型方法中返回原始集合类型

】在泛型方法中返回原始集合类型【英文标题】:Returningoriginalcollectiontypeingenericmethod【发布时间】:2011-11-2223:38:05【问题描述】:假设我们想要创建一个类似minBy的函数,它返回集合中所有同等极简主义的元素:defmultiMinBy[A,B:Ord... 查看详情

java集合框架和泛型

java的集合类有四个接口:collection、map、list、set。实现四个接口的六个实现类:ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeSet。 collection:存储一组不唯一,无序的对象List:继承collection接口,存储一组不唯一,有序的对象S... 查看详情

java容器集合框架

Java集合框架 集合的引入:数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。数组的劣势:不灵活。容量需要事先定义好,不能随着需求的变化而扩... 查看详情

java集合(类)框架

集合类均在java.util包之下集合类方法的功能基本为增、删、改、查,部分外加方法除外(如toArray()、toString()等)1.List接口底层为Object数组,存放的数据可以重复,且数据有序储存、排列1.1ArrayList类继承AbstracList<E>类,是List... 查看详情

java集合(类)框架

1.Set集合 1.1HashSet集合HashSet底层为哈希码不是数组,因此没有下标的概念,也就不能根据下标来查询某个元素存放元素无序,不可重复1.1.1声明  Set<String>set=newHashSet<String>();Setset1=newHashSet(); 与List集合相一... 查看详情

java里两个泛型集合可以合并吗

...,有没有什么方法,直接可以合并可以啊,只要你的泛型集合类是Collection的子类,就可以用addAll(Collection<?extendsE>c)这个方法全添加进去,不知道你是不是说的这个?参考技术A可以的都是Object类型就行了 参考技术BList<Object... 查看详情

java的泛型---(英雄联盟集合嵌套案例)(代码片段)

...rE增强for泛型类的测试 泛型方法的测试 泛型接口的测试集合的嵌套遍历 案例一案例二 集合嵌套案例(英雄联盟案例)Java的泛型JDK1.5以后出现的机制为什么会有泛型呢?早期的Object类型可以接受任意的对象类型... 查看详情

java入门系列-19-泛型集合

集合如何存储每天的新闻信息?每天的新闻总数是不固定的,太少浪费空间,太多空间不足。如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,可以使用Java集合框架。Java集合框架提供了一套性能优良、... 查看详情

50道集合框架面试题

1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线... 查看详情

java-基础(集合泛型)(代码片段)

JAVA-基础(集合泛型)1.什么是泛型?可以在类或方法中预支地使用未知的类型。2.泛型的好处?将运行时期的ClassCastException,转移到了编译时期变成了编译失败。避免了类型强转的麻烦。(集合中是可以存放任意对象的,只要把... 查看详情

将一个泛型集合中的数据赋给另一个泛型集合

单纯new一个用“=”的话改变新new的原数组也会随之改变是跟随的。因此要单纯赋值的话有一个简单的方法://如果真要这么做,但是有不想麻烦的话,就直接使用ToList方法,List<int>a=newList<int>{1,2,3,4};List<int>b=a.ToList()... 查看详情

java中泛型的使用

参考技术A泛型可以避免强制类型转换,设定集合对象中存储的对象类型。比如List<String>list=newArrayList<String>();那在这个list中,只能存储字符串对象。 参考技术B一般使用在集合上,比如现在将一个字符串类型放在集合里... 查看详情

java_集合与泛型

Collection集合,集合是java中提供的一种容器,可以用来存储多个数据。在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢?数组的长度... 查看详情

集合框架与泛型

集合框架:★★★★★,用于存储数据的容器。特点:1:对象封装数据,对象多了也需要存储。集合用于存储对象。2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合。因为集合是可变长度的。 集合和数组... 查看详情

集合迭代器增强for泛型

java.util.Collection接口是集合的最顶层的接口,定义了集合共性的方法接口无法直接创建对象,使用多态的方式创建对象Collection<集合中的数据类型(泛型)>coll=newArrayList<集合中的数据类型(泛型)>();迭代器集合中存储数据的方式... 查看详情