关键词:
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. 泛型优点
- 提高代码重用性
genericMethod.show(520);
genericMethod.show("五二零");
genericMethod.show(new Integer(520));
- 防止类型转换异常,提高代码的安全性。
// 现在集合里面只可以存放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<集合中的数据类型(泛型)>();迭代器集合中存储数据的方式... 查看详情