Java学习笔记十二--集合(三)
第一节课
返回值 方法名 作用 void add(index,elemnet) 在指定的索引处添加元素 object get(index) 返回指定索引处的元素 int indexOf(object) 元素第一次出现的位置 int lastindexof(object) 元素最后一次出现的位置 object set(index,object) 替换指定索引处的为指定对象 boolean addAll(index,collection) 添加指定的集合到当前集合的指定索引处 object remove(int) 删除当前集合中指定索引index处的元素,并返回被删除的元素 List sublist(int fromindex,int toindex) 返回当前集合中指定索引fromindex到toindex处的所有元素组成的子集合 ArrayList札记
数据结构是数组
特点:
增删慢,查询快;
其底层数组默认容量为10,新元素增加自动增加
LinkedList概述
底层数据存储结构式链表结构
增删快,查询慢,另外还实现了Deque接口,因此可以被当做双端对列和栈使用
设计了很多的首尾操作的方法(e 为泛型的通配符)
特有方法合集:
| 返回值 | 方法名 | 作用 |
|---|---|---|
| void | addFirst(e e) | 将指定元素e插入当前集合的开头 |
| void | addLast(e e) | 将指定元素e插入当前集合的末尾 |
| E | getFirst() | 获取当前集合中的第一个元素 |
| E | getLast() | 获取当前集合中的最后一个元素 |
| e | removeFirst() | 删除当前集合中的第一个元素 |
| e | removeLast() | 删除当前集合中最后一个元素 |
ListIterator
提供了listIterator()方法,获取listIterator对象,专门用来迭代list集合,ListIterator接口继承于Iterator接口
| 返回值 | 方法名 | 作用 |
|---|---|---|
| boolean | hasprevious() | 判断是否有下一个元素 |
| object | previous() | 获取迭代的上一个元素 |
| void | add() | 在指定位置添加元素 |
Vector向量
list接口的实现类,底层基于数组,默认容量10,每次增加一倍,是一个线程安全的集合
Vector<String> vc=new Vector<String>(); // create one vector collection; vc.capacity(); // get vector collection capacity;
Stack(栈)
list集合的实现类,继承了vector,遵循先进后出的原则
名词解释:
栈顶元素:最后入栈的元素
栈底元素:最先入栈的元素
入栈/压栈:将元素放入栈中
出栈/弹栈:将元素从栈中取出
Stack<String> s=new Stack<String>(); // create onr stack collection s.push("xxxx"); // 压栈返回值 方法名 作用 E push(E item) 将指定的元素item压入当前栈中 E(synchronized) peek() 获取栈顶元素,不删除 E(synchronized) pop() 出栈,并删除栈顶元素 int(synchronized) search() 获取时从栈顶到栈底的顺序开始查找,以1为基数,若没有返回-1;
Queue队列
collection接口下的子接口,底层是队列的数据结构存储,遵循先进先出,后进后出的原则,最先放进去的元素叫队头元素,最后放进去的元素叫队尾元素
Queue q = new ConcurrentLinkedQueue(); // 创建队列对象 q.offer("xxxxx"); // 插入队列元素常用方法
返回值 方法名 作用 boolean offer(E e) 插入元素,成功true,失败false E peek() 获取队头的元素,成功则输出,反之为null E element() 获取队头的元素,失败则抛出NosuchElementException(没有元素异常) E poll() 出队移除队头元素,失败返回null E remove() 移除队头元素,失败则抛出异常
Java学习笔记十二--集合(三)的更多相关文章
- Java学习笔记十二:Java中方法的重载
Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...
- Java学习笔记(十二)面向对象---内部类
内部类的访问规则 内部类可以直接访问外部类中的成员,包括私有成员. 因为内部类中持有了一个外部类的引用,格式为:外部类名.this 外部类要访问内部类,必须要建立内部对象. class Outer { ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- java jvm学习笔记十二(访问控制器的栈校验机制)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们 ...
- java se系列(十二)集合
1.集合 1.1.什么是集合 存储对象的容器,面向对象语言对事物的体现,都是以对象的形式来体现的,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式.集合的出现就是为了持有对象.集 ...
- Java学习笔记(二)——Java操作properties文件
[前面的话] 前段时间在学习和玩java web相关的东西,对于这些技术,一边学习,一边做东西,一边总结,希望可以一边成长和有所收获.有时总是思考太多反而成为了前进的阻力,所以对于生活还是简单一些,不 ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第十二周
java学习第十章:图形程序设计 本章,介绍的是如何编写使用图形用户界面GUI的java程序.主要讲的是如何编写定义屏幕上的窗口大小和位置的程序,如何在窗口中采用多种字体显示文本,如何显示 ...
随机推荐
- 容器时代的持续交付工具---Drone:Drone介绍与安装
Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container ...
- 将SpringBoot部署在外部tomcat中
一,前言 在文章SpringBoot之简单入门中提到了,SpringBoot是内置一个tomcat容器的,但是如果要将SpringBoot部署在一个外部的tomcat,要怎么办呢?这就是本篇文章的目的 ...
- Gitlab+Gitlab-CI+Docker实现持续集成(CI)与持续部署(CD)
写在前面 记录一下,一个自动化开发部署项目的构建过程与简单使用,实现真正的DevOps gitlab安装 步骤一:安装依赖 yum -y install git gcc glibc-static te ...
- DeleteFolder
import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; /*** * @author ...
- Maven 梳理 - Maven中的dependencyManagement 意义
1.在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器. 2.pom.xml文件中,jar的版本判断的两种途径 1:如果dependenci ...
- centos7 Apache开启URL重写组件并配置.htaccess实现伪静态
第一.修改httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_re ...
- .Net Core自动化部署系列(三):使用GitLab CI/CD 自动部署Api到Docker
之前写过使用Jenkins实现自动化部署,最近正好没事研究了下GitLab的自动化部署,顺便记录一下. 使用GitLab部署我们需要准备两件事,第一个起码你得有个GitLab,自己搭建或者使用官方的都 ...
- more,less,head,tail
当用cat,tac命令查看文件时,文件的所有内容都会被刷出来,因为缓存有限,被刷过去的内容可能就留不住了.用cat查看个小文件还可以,查看大文件时就用到下面的命令. more (选项)(参数) ...
- 关于javascript中的prototype
作为一个致力于前端开发的人员,能够熟练掌握javascript的原理和机制是每个小白的必经之路,这也是最痛苦的.有人说前端功力好不好最主要的就是看对js的掌握能力,有人说十年也啃不完一门javascr ...
- 《深入理解Java虚拟机》-----第12章 Java内存模型与线程
概述 多任务处理在现代计算机操作系统中几乎已是一项必备的功能了.在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速 ...