摘要: 1 泛型中通配符: ? 2 需求1: 定义一个函数可以接收接收任意类型的集合对象, 要求接收的集合对象只能存储Integer或者是Integer的父类类型数据。 注意: ? super Integer : 只能存储Integer或者是Integer父类元素。 泛型的下限 需求2: 定义一个函数可以接 阅读全文
posted @ 2017-05-06 20:21 shadowdoor 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 1 泛型接口的定义格式: interface 接口名<声明自定义泛型>{ } 2 泛型接口要注意的事项: A. 接口上自定义的泛型的具体数据类型是在实现一个接口的时候指定的。 B. 在接口上自定义的泛型如果在实现接口的时候没有指定具体的数据类型,那么默认为Object类型。 3 目前实现一个接口的时 阅读全文
posted @ 2017-05-06 19:26 shadowdoor 阅读(3402) 评论(0) 推荐(1) 编辑
摘要: 1 泛型类的定义格式: class 类名<声明自定义泛型>{ } 示例: 2 泛型类要注意的事项: A. 在类上自定义泛型的具体数据类型是在使用该类的时候创建对象时候确定的。 B. 如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象的时候没有指定泛型的具体数据类型,那么默认为Object类型 阅读全文
posted @ 2017-05-06 17:49 shadowdoor 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 1 自定义泛型: 自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。 2 方法上自定义泛型: 修饰符 <声明自定义的泛型>返回值类型 函数名(使用自定义泛型 ...){ } 3 方法泛型注意的事项: A. 在方法上自定义泛型,这个自定义泛型的具体数据类型是在调用该方法的时候传入实参时确定具 阅读全文
posted @ 2017-05-06 17:01 shadowdoor 阅读(4162) 评论(0) 推荐(0) 编辑
摘要: 泛型是jdk1.5使用的新特性。 泛型的好处: 1. 将运行时的异常提前至了编译时。 2. 避免了无谓的强制类型转换 。 泛型在集合中的常见应用: ArrayList<String> list = new ArrayList<String>(); true ArrayList<Object> lis 阅读全文
posted @ 2017-05-06 16:35 shadowdoor 阅读(221) 评论(0) 推荐(0) 编辑
摘要: /* HashSet的实现原理: 往HashSet添加元素的时候,HashSet会先调用元素的hashCode方法得到元素的哈希值 , 然后通过元素 的哈希值经过移位等运算,就可以算出该元素在哈希表中 的存储位置。 情况1: 如果算出元素存储的位置目前没有任何元素存储,那么该元素可以直接存储到该位置 阅读全文
posted @ 2017-05-06 12:07 shadowdoor 阅读(8480) 评论(0) 推荐(0) 编辑
摘要: /* 1. 往TreeSet添加元素的时候,如果元素本身具备了自然顺序的特性,那么就按照元素自然顺序的特性进行排序存储。 2. 往TreeSet添加元素的时候,如果元素本身不具备自然顺序的特性,那么该元素所属的类必须要实现Comparable接口,把元素 的比较规则定义在compareTo()方法上 阅读全文
posted @ 2017-05-06 11:34 shadowdoor 阅读(1972) 评论(0) 推荐(0) 编辑
摘要: 1 import java.util.Iterator; 2 import java.util.TreeSet; 3 4 /* 5 需求:将字符串中的数值进行排序。 6 例如String str = "2 8 5 10 12 4"; ----> "2 4 5 8 10 12 " 7 */ 8 9 public class Demo7 { 10 p... 阅读全文
posted @ 2017-05-06 11:07 shadowdoor 阅读(330) 评论(0) 推荐(0) 编辑