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. 使用autohotkey修改方向键、回车和启动程序

    具体步骤 下载并安装autohotkey. 在你觉得合适的地方鼠标右键-新建-autohotkey script(脚本):或者创建一个别的文件,再把后缀改成ahk也可以 一个新建的ahk文档里面会有这 ...

  2. OneHot编码

    One-Hot编码 What.Why And When? 一句话概括:one hot编码是将类别变量转换为机器学习算法易于利用的一种形式的过程. 目录: 前言: 通过例子可能更容易理解这个概念. 假设 ...

  3. SqlServer卡慢解决办法

    SqlServer活动监视器调成1s刷新间隔 查看资源等待 (1)memory(内存)占用高时-->加内存(2)latch(业级锁)(并发量大时产生)-->调整cpu核心数可能解决(不一定 ...

  4. Servlet第三篇(response;request)

    response对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象.和代表响应的response对象 那么我们获取浏览器提交过来的数据,找reque ...

  5. 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统

    基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...

  6. 洛谷 P1426小鱼会有危险吗

    题目: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%.有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测器,探测器左右x米之内是探 ...

  7. 新建VS工程与填坑:解决方案与项目不在同一目录

    A.新建项目->空工程 B.添加依赖库 1.属性->C/C++->附加包含目录 注:添加头文件目录,必须指向子文件夹 2.属性->链接器->常规->附加库目录 注: ...

  8. yum 安装时遇到“UnicodeDecodeError: 'ascii' codec”的问题

    今天新安装了一个6.9系统,配置好本地yum源后,用yum安装时报了以上的错误信息,在/etc/yum.repos.d/目录下多出了TTT的一个目录 (手动问号),在百度上查了一些文档. 解决方法:1 ...

  9. Spring @Value取值为null或@Autowired注入失败

    @Value 用于注入.properties文件中定义的内容 @Autowired 用于装配bean 用法都很简单,很直接,但是稍不注意就会出错.下面就来说说我遇到的问题. 前两天在项目中遇到了一个问 ...

  10. python基础 (初识函数&函数进阶)

    函数基础部分 .什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...