一、泛型
1.概念
泛型指的是泛指的类型。主要用于子类和父类,接口和实现类之间的数据传递

JDK1.5之后新增的特性,主要用于解决安全问题,是一个安全机制

好处:
a.可以提高代码的复用性
b.避免了强制类型转换的麻烦
c.提高了代码的安全性
d.可以把运行时的异常提前到编译时

泛型:通过<>来定义要操作的引用数据类型

什么时候使用泛型?
通常使用在集合框架中,当遇到<>的时候,一般需要定义泛型

2.泛型的应用场景
a.泛型应用在类中

访问权限修饰符 class 类名<类型1,类型2。。。>
{
}

b.泛型应用在接口中
interface 接口名称<类型1,类型2。。。> {

}

c。泛型应用在方法中
访问权限修饰符 <类型1,类型2.。。。> 返回值类型 方法名(参数列表) {

}

d.应用在集合中

e.通配符-------- ?
可以匹配任意类型
1><? super 类名>:可以是指定类或者指定类的父类

2><? extends 类名>:可以是指定类或者执行类的子类

二、List接口
List是Collection接口的一个子接口,可以使用Collection中的所有的方法
List在Java中代表一个有序的集合,集合中的每个元素都有对应的索引,List允许添加重复元素,可以通过索引来访问集合中的元素

1.ArrayList-----List接口的一个实现类
特点:
a.不排重(同一个元素,可以被添加多次)
b.有序的(元素的添加顺序和底层的存储顺序是相同的)
c.底层存储采用类似“数组”的数据结构,查询和修改的效率比较高,新增和删除的效率比较低

2.LinkedList
特点:
a.不排重(同一个元素,可以被添加多次)
b。有序的(元素的添加顺序和底层的存储顺序是相同的)
c.底层存储采用链表的数据结构,查询和修改的效率比较低,新增和删除的效率比较高

链表的存储:当添加第一个元素的时候,会自动的添加进去第二个元素的地址

3.Vector
特点:
a.在用法上和ArrayList几乎完全相同
b.Vetor是一个古老的集合。(JDK1.0开始)
c。Vector是线程安全的,ArrayList是线程不安全的(推荐使用ArrayList,Collections工具类可以将一个ArrayList变成线程安全的)
d.在性能上比ArrayList低

4.Satck

是Vector的子类,用于模拟栈这种数据结构,栈通常是先进后出
最后push进栈的元素,将最先被pop出栈,进栈出栈都是Object,从栈中取出元素后必须要做强制类型转换

三、遍历集合

1.增强for循环
2.迭代器Iterator(接口)
3.ListIterator迭代器

JAVA基础知识总结:十四的更多相关文章

  1. 基础知识《十四》Java异常的栈轨迹fillInStackTrace和printStackTrace的用法

    本文转自wawlian 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方 ...

  2. Java基础知识陷阱(十)

    本文发表于本人博客. 上个星期由于时间比较紧所以未能继续写下去,今天再接再厉,专心 + 坚持这样离目标就越来越近了!废话少说说正题,今天我们还是来说说java中比较基础的知识,大家知道编写java程序 ...

  3. Java基础知识笔记(四:多线程基础及生命周期)

    一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...

  4. Java基础知识拾遗(四)

    IO SequenceInputStream,允许链接多个InputStream对象.在操作上该类从第一个InputStream对象进行读取,知道读取完全部内容,然后切换到第二个InputStream ...

  5. Java基础笔记(十四)——封装

    封装(好比ATM机) 将类的某些信息隐藏在类内部,不允许外部程序直接访问(隐藏对象的信息),通过该类提供的方法来实现对隐藏信息的操作和访问(留出访问的接口). 特点: 1.只能通过规定的方法访问数据. ...

  6. Java基础(二十四)Java IO(1)输入/输出流

    在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称为输出流. 输入流的指向称为源,程序从指向源的输入流中读取数据. 输出流的指向是字节要去的目的地, ...

  7. JAVA基础知识总结:四

    一.方法 1.什么是方法? 对于功能相同的代码段,为了简化代码,会把功能相同的代码抽取出来,方便多次使用,Java中,我们使用[方法],也被称为函数 2.函数的声明 语法: 访问权限修饰符 其他修饰符 ...

  8. Java基础学习笔记十四 常用API之基本类型包装类

    基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...

  9. Java基础笔记(十四)——面向对象(续)【构造方法和this关键字】

    一.构造函数的规则 1.构造方法是用来在对象实例化时初始化对象的成员变量的,以完成对象的初始化工作. 2.构造方法与类名相同且没有返回值(返回值也不能为void型).如:public 构造方法名( ) ...

  10. java基础知识查漏 四

    1.JAVA多线程实现方式 (1)继承Thread类,并重写run()方法 (2)实现Runnable接口,,实现run()方法 (3)使用ExecutorService.Callable.Futur ...

随机推荐

  1. P1383 高级打字机

    P1383 高级打字机 主席树 一发主席树解决. 插入操作十分显然. 撤销操作复制前面的版本就行. 询问操作十分显然. #include<iostream> #include<cst ...

  2. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  3. 判断一个点是否在RotatedRect中

    openCV函数pointPolygonTest(): C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measur ...

  4. 20145325张梓靖 《网络对抗技术》 Web基础

    20145325张梓靖 <网络对抗技术> Web基础 实验内容 开启apahce,设计web前端HTML 设计web前端javascipt 设计web后端mysql 设计web后端php ...

  5. rpm command

    rpm 实现程序管理 安装:-ivh ,--nodeps ,--replacepkgs 卸载: -e,  --nodeps 升级: -Uvh -Fvh , --nodeps,  --oldpackag ...

  6. C++进程间通信之共享内存

    转载:http://blog.csdn.net/taily_duan/article/details/51692999 转载:http://blog.csdn.net/fengrx/article/d ...

  7. 【python002-设计小游戏】

    用python设计第一个游戏 一.运行idle的快捷方式:F5 二.首先设计一款小游戏: print('-------开启python学习之旅--------')temp = input(" ...

  8. ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50560, now running 50725. Please use mysql_upgrade to fix this error.

    centos7.5 登入mysql,进行授权报错 问题: mysql> grant all privileges on *.* to 'lvhanzhi'@'%' identified by ' ...

  9. 搭建git 服务器

    Gogs 什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务. https://gogs.io/docs

  10. arm中断体系结构

     ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:                   复位异常(Reset).     数据异常(Data Abort).     快速中断异常(FIQ) ...