Java集合学习(一)

ArraysList

ArraysList集合就像C++中的vector容器,它可以不考虑其容器的长度,就像一个大染缸一

样,无穷无尽的丢进去也没问题。Java的数据结构和C有许多的共同之处,希望在学习的

过程中可以相互借鉴。

以下为ArraysList的使用方法: 首先创建ArraysList对象: ArraysList A = new ArraysList();

  1. 添加对象实例: 有两种添加方法,一是直接添加,放到后面去,二是指定位置添加:

一直接添加:A.add(  对象名 );   二: 指定位置添加 : A.add(  数字 , 对象名  );

  1. 判断容器是否存在某对象: A.comtains( 对象名 ) //是判断是否是同一个对象
  2. 获取指定位置的对象 : A. get ( 数字 )
  3. 获取对象的指定位置 : A.indexOf ( 对象名 )
  4. 获取并删除 :A.remove( 数字)
  5. 替换 : A.set( 数字 , 要替换的对象   )
  6. 获取大小 : A.size();
  7. 转换为数组 : Hero H[] = (Hero[]) A.toArrays(new Hero[]{})
  8. 把另一个容器的对象都加进来:A.addAll( 容器名 );
  9. 清空: A.clear();

虽然ArraysList有着太多的方便,但是因为有着太多的各种不同的类的对象,这会导致

强制转换出现问题,于是,泛型就出现了,泛型要求一个ArraysList只能存入一种类型的

对象,这样既保存了方便,又可以避免类型错误。

创建一个泛型: List<Hero> Ls = new ArraysList<>();

原则:只能存放该类型以及其子类。

遍历方法:

  1. 利用for循环进行便利,for( int i = 0 ; i < A.size() ; i++){}
  2. 迭代器经行遍历:

创建迭代器: Iterator It = A.iterator();

循环:A.hasNext();

获取对象:Hero H = A.next();

  1. 增强型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作为队列使用的方法:

  1. 将元素插入后面:Hs.offer( new Hero(“盖伦”);
  2. 取出并删除第一个元素:Hs.poll();
  3. 拿第一个元素出来瞧一瞧但放回去 : Hs.peek();

讨论:Arrayslist 和 LinkedList的区别:

ArraysList 插入数据,删除数据 效率低下

LinkedList 插入数据,删除数据 速度很快

ArraysList 定位很快

LinkedList 定位很慢

2019/3/2周末 java集合学习(一)的更多相关文章

  1. 2019/3/4 java集合学习(二)

    java集合学习(二) 在学完ArrayList 和 LinkedList之后,基本已经掌握了最基本的java常用数据结构,但是为了提高程序的效率,还有很多种特点各异的数据结构等着我们去运用,类如可以 ...

  2. 转:深入Java集合学习系列:HashSet的实现原理

    0.参考文献 深入Java集合学习系列:HashSet的实现原理 1.HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特 ...

  3. Java集合学习(9):集合对比

    一.HashMap与HashTable的区别 HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题.Hash ...

  4. java集合学习(2):Map和HashMap

    Map接口 java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map. Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含 ...

  5. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

  6. java集合学习一

    首先看一下java集合的关系图 1.1从全面了解Java的集合关系图.常见集合  list  set map等其中我们最常用的 list  map 结合.几天说一下常见的map.map在我工作的两年里 ...

  7. Java集合学习总结

    java集合 collection public interface Collection<E> extends Iterable<E> List public interfa ...

  8. Java 集合学习--HashMap

    一.HashMap 定义 HashMap 是一个基于散列表(哈希表)实现的键值对集合,每个元素都是key-value对,jdk1.8后,底层数据结构涉及到了数组.链表以及红黑树.目的进一步的优化Has ...

  9. java集合学习(1):集合框架

    集合 Collection(有时候也叫container)是一个简单的对象, Java集合工具包位于Java.util包下,Java集合主要可以划分为4个部分:List列表.Set集合.Map映射.工 ...

随机推荐

  1. OOP的概念和基础特性

    OOP是面对对象程序设计,是一种程序设计范型,同时也是一种程序开发方法.它将对象作为程序的基本单元,将程序和数据封装其中,以提高程序的复用性.灵活性.可扩展行. OOP的核心思想是对象.封装.可复用性 ...

  2. Scrapy中集成selenium

    面对众多动态网站比如说淘宝等,一般情况下用selenium最好 那么如何集成selenium到scrapy中呢? 因为每一次request的请求都要经过中间件,所以写在中间件中最为合适 from se ...

  3. 记一次git翻车事件

    昨天dmp上线了 本来整个流程是 1.在本地1.4分支开发,开发完成push到origin/1.4,在远程仓库把1.4 merge到master分支 2.本地online分支先pull一下远程onli ...

  4. linux,无法进行写操作怎么办?read-only file system

    一句命令搞定: mount -o remount rw /

  5. Find out where to contain the smartforms

    Go to table E071 and give smarforms name and it will give the transport req for that. Run SE03, choo ...

  6. 通过ssh StrictHostKeyChecking解决自动化git项目问题

    SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查. 首 ...

  7. debian proftpd安装

  8. Mac/Linux/Centos终端中上传文件到Linux云服务器

      1.mac上传文件到Linux服务器  scp 文件名 用户名@服务器ip:目标路径 如:scp /Users/test/testFile test@www.linuxidc.com:/test/ ...

  9. EasyPR源码剖析(4):车牌定位之Sobel算子定位

    一.简介 sobel算子主要是用于获得数字图像的一阶梯度,常见的应用是边缘检测. Ⅰ.水平变化: 将 I 与一个奇数大小的内核进行卷积.比如,当内核大小为3时, 的计算结果为: Ⅱ.垂直变化: 将: ...

  10. 关于Https

    http://blog.csdn.net/wfdtxz/article/details/8678982 https://www.tuicool.com/articles/feYfE3I https:/ ...