2019/3/2周末 java集合学习(一)
Java集合学习(一)
ArraysList
ArraysList集合就像C++中的vector容器,它可以不考虑其容器的长度,就像一个大染缸一
样,无穷无尽的丢进去也没问题。Java的数据结构和C有许多的共同之处,希望在学习的
过程中可以相互借鉴。
以下为ArraysList的使用方法: 首先创建ArraysList对象: ArraysList A = new ArraysList();
- 添加对象实例: 有两种添加方法,一是直接添加,放到后面去,二是指定位置添加:
一直接添加:A.add( 对象名 ); 二: 指定位置添加 : A.add( 数字 , 对象名 );
- 判断容器是否存在某对象: A.comtains( 对象名 ) //是判断是否是同一个对象
- 获取指定位置的对象 : A. get ( 数字 )
- 获取对象的指定位置 : A.indexOf ( 对象名 )
- 获取并删除 :A.remove( 数字)
- 替换 : A.set( 数字 , 要替换的对象 )
- 获取大小 : A.size();
- 转换为数组 : Hero H[] = (Hero[]) A.toArrays(new Hero[]{})
- 把另一个容器的对象都加进来:A.addAll( 容器名 );
- 清空: A.clear();
虽然ArraysList有着太多的方便,但是因为有着太多的各种不同的类的对象,这会导致
强制转换出现问题,于是,泛型就出现了,泛型要求一个ArraysList只能存入一种类型的
对象,这样既保存了方便,又可以避免类型错误。
创建一个泛型: List<Hero> Ls = new ArraysList<>();
原则:只能存放该类型以及其子类。
遍历方法:
- 利用for循环进行便利,for( int i = 0 ; i < A.size() ; i++){}
- 迭代器经行遍历:
创建迭代器: Iterator It = A.iterator();
循环:A.hasNext();
获取对象:Hero H = A.next();
- 增强型for循环 :for( Hero H : A){}
===============================================================================
LinKedList
LinkedList同样实现了list接口,可以拥有和ArraysList一样的方法,除此之外,它还实现了Deque接口,它
的储存方式像链表一样,可以很方便的在头部或尾部进行插入或删除(但也不是一般的链表,是双向链表)
创建LinkedList容器:
LinkedList<Hero> Hs = new LinkedList<>();
区别于ArraysList之外的特殊的使用方法:
查看首部元素: Hs.getFirst( );
查看尾部元素: Hs.getLast( );
获取并删除首部元素: Hs.removeFirst( );
获取并删除尾部元素: Hs.removeLast( );
除此之外,LinkedList也实现了Queue接口,可以作为队列使用,以下是将LinkedList作为队列使用的方法:
- 将元素插入后面:Hs.offer( new Hero(“盖伦”);
- 取出并删除第一个元素:Hs.poll();
- 拿第一个元素出来瞧一瞧但放回去 : Hs.peek();
讨论:Arrayslist 和 LinkedList的区别:
ArraysList 插入数据,删除数据 效率低下
LinkedList 插入数据,删除数据 速度很快
ArraysList 定位很快
LinkedList 定位很慢
2019/3/2周末 java集合学习(一)的更多相关文章
- 2019/3/4 java集合学习(二)
java集合学习(二) 在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以 ...
- 转:深入Java集合学习系列:HashSet的实现原理
0.参考文献 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特 ...
- Java集合学习(9):集合对比
一.HashMap与HashTable的区别 HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.Hash ...
- java集合学习(2):Map和HashMap
Map接口 java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map. Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含 ...
- 深入java集合学习1-集合框架浅析
前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...
- java集合学习一
首先看一下java集合的关系图 1.1从全面了解Java的集合关系图.常见集合 list set map等其中我们最常用的 list map 结合.几天说一下常见的map.map在我工作的两年里 ...
- Java集合学习总结
java集合 collection public interface Collection<E> extends Iterable<E> List public interfa ...
- Java 集合学习--HashMap
一.HashMap 定义 HashMap 是一个基于散列表(哈希表)实现的键值对集合,每个元素都是key-value对,jdk1.8后,底层数据结构涉及到了数组.链表以及红黑树.目的进一步的优化Has ...
- java集合学习(1):集合框架
集合 Collection(有时候也叫container)是一个简单的对象, Java集合工具包位于Java.util包下,Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工 ...
随机推荐
- Linux系统中无iptables文件的解决
在RHEL 7 / CentOS 7中,firewalld被引入来管理iptables,CentOS7开始,默认是没有iptables的,而是使用firewall防火墙.本文将屏蔽掉firewall, ...
- 消息中间件 rabbitMQ
参考内容:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html 一.什么是RabbitMQ RabbitMQ是一个由erlang 开发的AMQP(Advance ...
- 自制EF(iShare Demo版)
由于公司使用的所有技术都比较倾向于使用原生,不怎么借用其他第三方框架(无论是前端布局,样式,到后台的框架).公司也算比较小型的没有太大的项目 可以让我们进行团队合作项目,几乎是一人接手一个项目.然后自 ...
- Windows内核驱动中操作文件
本页主题:如何在windows内核驱动中对文件操作,实现对文件的拷贝.粘贴.删除.查询信息等,这是很常用也是很简单的方法. 部分内容参考:http://www.cppblog.com/aurain/a ...
- 阿里云 ss!!!
一.shadowsocks简介(以下来自wiki百科) shadowsocks是一种基于Socks5代理方式的网络数据加密传输包,并采用Apache许可证.GPL.MIT许可证等多种自由软件许可协议开 ...
- wayne生产环境部署(360的容器发布平台-开源)
参考文档 http://360yun.org/wayne/dev/develop-flow.html 使用rke部署k8s,详细过程见前面 文章,同时部署好kubectl 安装go yum insta ...
- 20175314 《Java程序设计》第九周学习总结
20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...
- [程序员代码面试指南]数组和矩阵问题-找到无序数组中最小的k个数(堆排序)
题目链接 https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf?tpId=13&tqId=11182&t ...
- jquery 中dataTable显示加载中,图片或文字
引入js文件 <script type="text/javascript" src="${basePath}/lib/datatables/1.10.0/jquer ...
- labellmg的使用
---恢复内容开始--- 在powershell环境下进入到labelImg解压后的文件,我这里是D:\labelImg-master\labelImg-master 执行命令: pyrcc5 -o ...