一、泛型
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. HashMap的实现原理总结

    HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象. 当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到b ...

  2. Android之xml解析

    利用类下载器解析Xml文件要解析的xml文件<?xml version="1.0" encoding="utf-8"?><info> & ...

  3. 《大话处理器》Cache一致性协议之MESI (转)

    原文链接:http://blog.csdn.net/muxiqingyang/article/details/6615199 Cache一致性协议之MESI 处理器上有一套完整的协议,来保证Cache ...

  4. opencv学习之路(5)、鼠标和滑动条操作

    一.鼠标事件 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespa ...

  5. kali linux web程序集简述

    Burp Suite Burp Suite是一个用于执行Web应用程序安全性测试的集成平台. 它的各种工具可以无缝地协同工作,支持整个测试过程,从应用程序攻击面的初始映射和分析,到查找和利用安全漏洞. ...

  6. bzoj 3325 密码 - Manacher

    题目传送门 需要root权限的传送点 题目大意 已知一个串,以每个字符为中心的最长回文串长,以及每两个字符中间为中心的最长回文串长.求字典序最小的这样一个串.题目保证有解. 考虑Manacher的过程 ...

  7. phpMyAdmin - Error

    centos7.5 原因:权限问题 解决方法:授权 [root@web01 code]# groupadd -g666 www [root@web01 code]# useradd -u666 -g6 ...

  8. Oracle使用——oracle用户相关操作

    前提 以dba角色登录数据库(普通用户没有操作权限):sqlplus / as sysdba 具体操作 创建用户 创建用户 使用默认表空间创建用户 create user xzgxh identifi ...

  9. linux内核中侧async_tx是什么?

    答: 异步内存传输api(asynchronous memory transfer/transform API),这是一种api,用来为应用提供操作DMA的API. 下图是async_tx在架构中所处 ...

  10. 【做题】CF388D. Fox and Perfect Sets——线性基&数位dp

    原文链接https://www.cnblogs.com/cly-none/p/9711279.html 题意:求有多少个非空集合\(S \subset N\)满足,\(\forall a,b \in ...