首页 > 编程知识 正文

java三角形代码(泛型)

时间:2023-05-03 18:00:34 阅读:123465 作者:3093

1 .通用型1.1通用型的概要是JDK5中引入的特性,提供编译时可以检测非法型的编译时型安全检测机构

其本质是参数型。 也就是说,要操作的数据类型被指定为参数。 说到参数,最常见的方法是在定义方法时指定物理参数,在调用方法时传递物理参数。 参数化类型怎么理解? qcdmg是将模型从原来的具体模型参数化,在使用/调用时传递给具体模型。 这些参数类型可用于类、方法和接口,分别称为泛型类、泛型方法和泛型接口。

1.2通用定义格式类型:指定类型的格式。 这里的类型可以视为形参。

类型1、类型2…:指定多种类型的格式,用逗号分隔多种类型。 这里的类型可以视为形参。

将来,在具体调用时给出的类型可以视为实参,实参的类型只能是引用数据类型。

1.3通用的好处是将运行时间问题提前到编译期间,避免强制类型转换。

1.4泛型类格式:

修饰符class类名类型{ }示例代码:

//通用型公共类通用t {私有t t; public T getT () { return t; }公共语音集(TT ) { this.t=t; (//测试代码publicclassgenericdemo ) publicstaticvoidmain (字符串[ ] args ) ) genericstringggg1=newgenericstring ); G1 .设置(mddn ); 系统. out.println (G1.gett ) ); genericintegerg2=newgenericinteger (; G2.SETT(30; 系统. out.println (G2.gett ) ); genericbooleang3=newgenericboolean (; G3.sett (真); 系统. out.println (G3.gett ) ); }} 1.5通用方法格式:

修饰符类型返回类型方法名称(类型变量名称)示例代码:

公共类通用{ publictvoidshow (TT ) system.out.println; }//测试类publicclassgenericdemo { publicstaticvoidmain (string [ ] args ) { Generic g=new Generic ); g.show(mddn ); g.show(30; g.show (真; g.show(8.5; }} 1.6通用接口格式:

修饰符接口名称类型{ }示例代码;

publicinterfacegenerict { voidshow (TT; } publicclassgenericdemo { publicstaticvoidmain (string [ ] args ) genericstringg1=newgenericimplstring ); G1.show(mddn ); genericintegerg2=newgenericimplinteger (; G2 .表演(18 ); }} 1.7型通配符(重要信息)1.7.1型通配符角色可以使用类型通配符来表示各种通用List的父类

1.7.2类型通配符分类类型通配符:

这个包含通配符的List只是表示它是各种通用List的父类,不能将元素添加到List中吗?表示元素类型未知的List,该元素与任何类型的通配符上限匹配。 扩展类型

List? extends NNumber :这表示number或其子类型的通配符的下限。 超类型

List? super number :表示number或其父类型的示例代码。

publicclassgenericdemo {公共静态voi }

d main(String[] args) { //类型通配符:<?> List<?> list1 = new ArrayList<Object>(); List<?> list2 = new ArrayList<Number>(); List<?> list3 = new ArrayList<Integer>(); System.out.println("--------"); //类型通配符上限:<? extends 类型>// List<? extends Number> list4 = new ArrayList<Object>(); List<? extends Number> list5 = new ArrayList<Number>(); List<? extends Number> list6 = new ArrayList<Integer>(); System.out.println("--------"); //类型通配符下限:<? super 类型> List<? super Number> list7 = new ArrayList<Object>(); List<? super Number> list8 = new ArrayList<Number>();// List<? super Number> list9 = new ArrayList<Integer>(); }} 2.可变参数 2.1可变参数介绍

        可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了。

2.2可变参数定义格式 修饰符 返回值类型 方法名(数据类型… 变量名) { } 2.3注意事项 这里的变量其实是一个数组如果一个方法有多个参数,包含可变参数,可变参数要放在最后2.4基本使用 public class ArgsDemo01 { public static void main(String[] args) { System.out.println(sum(10, 20)); System.out.println(sum(10, 20, 30)); System.out.println(sum(10, 20, 30, 40)); System.out.println(sum(10,20,30,40,50)); System.out.println(sum(10,20,30,40,50,60)); System.out.println(sum(10,20,30,40,50,60,70)); System.out.println(sum(10,20,30,40,50,60,70,80,90,100)); }// public static int sum(int b,int... a) {// return 0;// } public static int sum(int... a) {// System.out.println(a);// return 0; int sum = 0; for(int i : a) { sum += i; } return sum; }} 2.5可变参数使用

Arrays工具类中有一个静态方法:

public static List asList(T... a):返回由指定数组支持的固定大小的列表返回的集合不能做增删操作,可以做修改操作

List接口中有一个静态方法

public static List of(E... elements):返回包含任意数量元素的不可变列表返回的集合不能做增删改操作

Set接口中有一个静态方法:

public static Set of(E... elements) :返回一个包含任意数量元素的不可变集合在给元素的时候,不能给重复的元素返回的集合不能做增删操作,没有修改的方法

示例代码

public class ArgsDemo02 { public static void main(String[] args) { //public static <T> List<T> asList​(T... a):返回由指定数组支持的固定大小的列表 List<String> list = Arrays.asList("hello", "world", "java");// list.add("javaee"); //UnsupportedOperationException list.remove("world"); //UnsupportedOperationException// list.set(1,"javaee");//// System.out.println(list); //public static <E> List<E> of​(E... elements):返回包含任意数量元素的不可变列表// List<String> list = List.of("hello", "world", "java", "world");// list.add("javaee");//UnsupportedOperationException list.remove("java");//UnsupportedOperationException list.set(1,"javaee");//UnsupportedOperationException//// System.out.println(list); //public static <E> Set<E> of​(E... elements) :返回一个包含任意数量元素的不可变集合// Set<String> set = Set.of("hello", "world", "java","world"); //IllegalArgumentException // Set<String> set = Set.of("hello", "world", "java");// set.add("javaee");//UnsupportedOperationException// set.remove("world");//UnsupportedOperationException System.out.println(list); }} 3.EntrySet()介绍使用 3.1概述

        entrySet是 java中 键-值 对的集合,Set里面的类型是Map.Entry,一般可以通过map.entrySet()得到,得到的是一个键值对对象的集合,可以通过下面方法来获取其中内容。

        Map.Entry里面包含getKey()和getValue()方法。

3.2遍历Map的四种方法 public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); //第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历key和value:"); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } //第二种 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } //第三种:推荐,尤其是容量大时 System.out.println("通过Map.entrySet遍历key和value"); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } //第四种 System.out.println("通过Map.values()遍历所有的value,但不能遍历key"); for (String v : map.values()) { System.out.println("value= " + v); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。