首页 > 其他分享 >泛型(1)

泛型(1)

时间:2022-10-17 09:44:34浏览次数:41  
标签:String list System println 泛型 out

泛型的概述

泛型是一种未知的数据类型 当我们不知道使用什么数据类型的时候 可以使用泛型

泛型也可以看出是一个变量 用来接收数据类型

当我们创建集合是就确定泛型类型

使用泛型的好处

我们都知道集合中是可以存放任意对象的 只要把对象存储集合后 那么这时他们都会被提升成Object类型 当我们在取出每个对象 并且进行相应的操作 这时必须采用类型转换

创建集合不使用泛型的好处:集合不使用泛型 默认的类型就是Object类型 可以存储任意类型的数据

创建集合不使用泛型的坏处:不安全 会引发异常

代码:

public static void main(String[] args) {
Collection<Object> list = new ArrayList<>();
list.add("张三");
list.add(15);
list.add(15.0);
list.add(true);

Iterator<Object> iterator = list.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
System.out.println(next);
//要求使用String类里的length方法判断长度
//向下转型
String s=(String) next;
System.out.println(s.length());
}

}

运行结果:

 报出的是类型转换异常 不能将Interger类型转变成String类型

不使用Object类型

代码:

public static void main(String[] args) {
Collection<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
String next = iterator.next();
System.out.println(next);

String s=(String) next;
System.out.println(s.length());
}
}

运行结果

 后面的数字就是我们String的长度 因为是遍历 所以只能一个一个算长度 比如:张三 长度为2 ...

泛型的定义和使用

定义一个含有泛型的类 模拟ArrayList集合

泛型是一个未知的数据类型 当我们不确定什么什么数据类型的时候 可以使用泛型

代码:

模拟集合类:

public class DemoArray<E> {
private E name;

public E getName() {
return name;
}

public void setName(E name) {
this.name = name;
}
}

测试类:

public static void main(String[] args) {
//泛型使用Integer
DemoArray<Integer> array = new DemoArray<>();
array.setName(10);
System.out.println(array.getName());
//泛型使用String
System.out.println("------------------");
DemoArray<String> array1 = new DemoArray<>();
array1.setName("张三");
System.out.println(array1.getName());
//不使用泛型 默认是Object类型
System.out.println("------------------");
DemoArray array2 = new DemoArray();
array2.setName(11);
System.out.println(array2.getName());
array2.setName("张三");
System.out.println(array2.getName());
}

运行结果:

标签:String,list,System,println,泛型,out
From: https://www.cnblogs.com/shenziyi/p/16798031.html

相关文章

  • 泛型(2)
    含有泛型的方法定义格式:修饰符<泛型>返回值类型方法名(参数){}含有泛型的方法在调用方法的时候确定泛型的数据类型传递什么类型的参数泛型就是什么类型代码:方法类:......
  • 异常和集合和泛型
                  集合                                  ......
  • 泛型
    泛型常见形式有泛型类,泛型接口,泛型方法语法<T....>T称为类型占位符,表示一种引用类型好处:提高代码的重用性防止类型转换异常,提高代码的安全性泛型类......
  • C#中的泛型详解
    泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(typeparameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其......
  • Unity泛型单例模式
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassSingleton<T>:MonoBehaviourwhereT:Singleton<T......
  • 泛型
    类型参数的好处程序更已读,可以明显知道代表的什么类型数据更安全,在存储可以根据类型检查,读取的时候不用强制类型转换泛型类publicclassPair<T>{privateTfirs......
  • java中的泛型总结
    要我直接说出泛型是个what我还真讲不出来,这里先由一道问题引入:定义一个坐标点类,要求能保存各种类型的数据,如:整形,浮点型,和字符串类型既然变量类型起先不确定,那么很容易想到......
  • Golang 泛型使用
    Golang泛型泛型函数定义funcFunc1[Tint|int32|int64|float32|float64](a,bT)T{ returna+b}使用Func1[int32](1,2)但是这样好像看起来很丑,所......
  • 浅谈Go1.18版本新特性——泛型
    泛型Generics:引入了对使用参数化类型的泛型代码的新支持,达到了算法可复用的目的。两数求和,泛型函数的使用假设我们要计算两个数的和,函数可以这样子写funcAdd(a......
  • KTV和泛型(3)
    泛型除了KTV,还有一个让人比较疑惑的玩意,而且它就是用来表达疑惑的:?虽然通过泛型已经达到我们想要的效果了,例如:List<String>list=newArrayList<String>();这样就可以放心......