泛型

java基础---集合篇

那年仲夏 提交于 2020-01-18 05:05:39
List集合 该添加方法是在集合的指定位置添加元素,指定位置原有元素的位置向后挪了一位(即下标加1): List.add(集合下标,添加元素);(集合实现类: ArrayList () ) 该添加方法是将另外一个集合(参数)的元素添加到集合的结尾处: List.addAll(Collection c ); List集合的底层实现: List集合的子类包括:ArrayList 底层使用的是:数组 注意:实现数组长度可变,指的是重新创建一个新的数组,长度大于旧数组 LinkedList 底层使用:链表结构 特点:每一个元素,前半部分是具体的值,后半部分是地址值 List集合的特点: 元素可重复,不唯一,有序(添加顺序/索引顺序/先后顺序) 集合只能存储对象或引用数据类型,基本数据类型不允许存放在集合当中。 当集合添加基本数据类型的时候,会自动装箱(将基本数据类型转换成引用数据类型)。 引用数据类型可以使用“==”和equals()方法比较,使用equals()方法比较集合元素是否重复。 List集合输出的三种方式: 标准for循环,增强for循环 以及迭代器(重点):(集合中的标准输出方法) System. out .println( "============== 迭代器输出 ===================" ); // 获取迭代器 ----List 集合当中存在一个方法 -

泛型程序设计,STL标准模板库

非 Y 不嫁゛ 提交于 2020-01-18 04:41:06
泛型程序:将程序从特定的数据结构中抽象出来,可扩展性非常好 迭代器,适配器 1.泛型程序设计 概念:具有一定功能的数据类型 模型:符合一个概念的数据类型 2.STL标准模板库(Standard Template Library) 3.迭代器:迭代容器中的元素 4.容器 逆向迭代器: rbegin():将容器的尾作为头逆向来用,指向的是容器的尾,遍历时,可以从尾到头的方向来遍历。 rend():将容器的头作为尾,指向容器的首。 6.顺序容器的基本功能 将列表中相邻两个元素的位置颠倒: 先将该元素存放在一个临时变量里面, 将该元素删除,删除后指向该元素的指针指向其下一个位置 将临时变量里面的元素插入到指针所指向的位置的后面 插入完,指针指向下一个位置 7.顺序容器的特点 利用双端队列来实现奇数在前,偶数在后,并且奇数按照从大到小的顺序输出,偶数按照从小到大的顺序输出 将读入的数据进行排序 遍历存放输入元素的迭代器,将奇数前插在队列的前端,偶数采用后插放在队列的尾部 8.顺序容器的插入迭代器与适配器 适配器:在已有容器的基础之上构建一些特殊的容器,例如:栈、队列是在顺序容器的基础上进行构建的 特别注意:栈和队列不支持迭代器,因为他们不提供对任意一个元素进行随机访问的操作 9.关联容器 10.映射 11.多重集合与多重映射 12.函数对象 12.函数适配器 分类: mem

阿里面试题:java面试题总汇

此生再无相见时 提交于 2020-01-18 03:27:45
前言 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大。这里整理挑选出来供大家面试前拿来看一看,所有题目整理自网络,有一些错误和笔误,感谢读者的热心纠错,在声明中已经改正过来。 整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要,但在短暂的面试过程中很挫败。转而去看面试题,但是网上面试题太多但又不全,查找很不方便,多是看过的又看,看十道才能看到面生的题目,极大的浪费了求职期间的宝贵时间。 最后大家一拍即合,准备各自把面试笔试以及自己看过好的题目收集起来,整理出来让后来的小伙伴们少踩些坑,所以有了这些题目。 目录 赢在面试之java基础篇(1) 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto? 3、说说&和&&的区别。 4、在JAVA中如何跳出当前的多重嵌套循环? 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 6、short s1= 1; s1 = (s1+1是int类型,而等号左边的是short类型,所以需要强转)1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?(没有错) 7

异常处理,枚举,泛型

倾然丶 夕夏残阳落幕 提交于 2020-01-18 00:00:56
Java异常处理: 5个关键字: try(尝试)、catch(捕获)、 finally(最终的)、throw(抛出)、throws 使用方法: finally :一般写的是资源释放代码,无论是否发生异常代码总能执行。 try{}catch(异常类型){} try{}catch(异常类型){} finally{} public class TestThrows { //除法 public double div() throws ArithmeticException{ int a=1; int b=0; if(b==0){ throw new ArithmeticException("aaaaaa"); } return a/b; } public static void main(String[] args) { TestThrows tt = new TestThrows(); try { tt.div(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } } //如果有finally的话,finally中的代码是在return之前执行的 子类抛出的异常范围,不能宽于父类; 异常类关系: java.lang.Object 继承者 java.lang

CMD数据库导入导出/Java泛型 2010/01/02笔记

血红的双手。 提交于 2020-01-17 07:03:44
目录 1. CMD指令导入.sql文件 1.1 方法一 1.2 方法二 2. CMD指令导出.sql文件 2.1 导出整个数据库 2.2 导出数据库中的数据库表 2.3 导出数据库结构 2.4 导出数据库中的数据库表的表结构 3. Java泛型知识点 1. CMD指令导入.sql文件 使用mysql指令需配置mysql环境变量 步骤:计算机==》属性==》高级系统设置==》环境变量==》Path 管理员身份运行CMD 1.1 方法一 语法:mysql -u[用户名] -p[密码] -D[数据库名称]<[.sql文件路径] 1.2 方法二 登录数据库 语法:mysql -u[用户名] -p[密码] 进入所操作的数据库 语法:source [.sql文件路径] 2. CMD指令导出.sql文件 2.1 导出整个数据库 语法:mysqldump -u[用户名] -p[密码] [数据库名]>[导出文件路径] 2.2 导出数据库中的数据库表 语法:mysqldump -u[用户名] -p[密码] [数据库名] [数据库表名]>[导出文件路径] 2.3 导出数据库结构 语法:mysqldump -u[用户名] -p[密码] -d [数据库名]>[导出文件路径] 2.4 导出数据库中的数据库表的表结构 语法:mysqldump -u[用户名] -p[密码] -d [数据库名] [数据库表名]>

java创建泛型数组

吃可爱长大的小学妹 提交于 2020-01-17 05:55:03
java创建泛型数组 https://www.cnblogs.com/Hdaydayup/p/7472674.html java中创建泛型数组并不是不可能,创建泛型数组通过反射,给构造函数传递两个参数,一个类型标记,一个数组大小。‘ 简单Demo如下: import java.lang.reflect.Array; /** * 创建泛型数组 * @author hetiantian */ public class GenericArrayWithTypeToken<T> { private T[] array; public GenericArrayWithTypeToken(Class<T> type, int size) { array = (T[]) Array.newInstance(type, size); } public static void main(String[] args) { GenericArrayWithTypeToken<House> g = new GenericArrayWithTypeToken<>(House.class, 10); System.out.println(g.array.getClass().getSimpleName()); System.out.println(g.array.length); } } 运行结果:

唬人的Java泛型并不难

╄→гoц情女王★ 提交于 2020-01-16 13:36:42
泛型 public interface Foo<E> {}public interface Bar<T> {}public interface Zar<?> {} 上面的代码有什么区别? 泛型初探 1、为何引入泛型? Java 泛型也是一种语法糖,使用泛型可以在代码编译阶段完成类型的转换,避免代码在运行时强制转换而出现ClassCastException的异常。 网络搜索出来一大堆的名称解释,我们先看英文 Generic type ,从英文大概也能明白,Generic 这里可以理解为普通的,一般的,或者我们可以说通用的。 其实可以理解为Java中的一种类型,通用类型。 Java从1.5的版本就开始支持泛型,不过很多小伙伴对泛型还是模凌两可,今天大概讲讲泛型,基础好的小伙伴,就当复习复习。 在1.5版本以前 public static void main(String[] args){ List list = new ArrayList(); list.add("兔子托尼啊"); list.add(1234); //正常运行 System.out.println((String)list.get(0)); //❌运行时报错 System.out.println((String)list.get(1));} 从上面的代码可以看出了,第一句打印不报错,第二句打印会报错的。

第十四章 泛型

折月煮酒 提交于 2020-01-16 05:19:36
1.泛型介绍 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 2.泛型方法 定义泛型方法的规则: 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的) 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等) 示例: public class GenericMethodTest { // 泛型方法 printArray public static < E > void printArray ( E [ ] inputArray ) { // 输出数组元素 for ( E element : inputArray ) { System . out . printf ( "%s " , element ) ; } System . out . println ( ) ; } public

c# where(泛型类型约束)

五迷三道 提交于 2020-01-16 02:42:43
定义:在定义 泛型 的时候,我们可以使用 where 限制 参数 的范围。 使用:在使用 泛型 的时候,你必须尊守 where 限制 参数 的范围,否则编译不会通过。 六种类型的约束: T:类 (类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。) class MyClass<T, U> where T : class///约束T参数必须为“引用 类型{ }” where U : struct///约束U参数必须为“值 类型” { } T:结构 (类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。) class MyClass<T, U> where T : class///约束T参数必须为“引用 类型{ }” where U : struct///约束U参数必须为“值 类型” { } T:new() (类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。) class EmployeeList<T> where T : Employee, IEmployee, System.IComparable<T>, new() { // ... } T:<基类名> (类型参数必须是指定的基类或派生自指定的基类。) public class Employee{} public class GenericList<T