第十一章集合框架(代码片段)

啊...这 啊...这     2022-12-01     243

关键词:

想要存储多个对象我们学习过的可以使用数组,但是如果存储的对象个数会不断变化的话,用数组就不合适了.因为数组存储的数组是定长的.

所以java中提供了集合类,让我们更方便的存储变长个数的对象.

 

集合和数组的最大区别是:

数组的长度是固定的,但集合的长度是可变的.

数组只能存储相同类型的数据,而集合能够存储不同类型的数据.

 

集合按照存储结构可以分成俩类:

1、Collection单列集合:用于存储一系列符合某种规则的元素

   子接口:List、Set.

  List中可以有重复的元素,并且List类中带有索引,可以通过索引精确得操作集合中的元素

2、Map双列集合:用于存储有映射关系的数据,有主键关系,就像是Python的字典.

  子接口:HashMap、TreeMap

 

 

Collection接口:

是所有单列集合类的父接口,有一些单列集合(List 、Set)通用的方法:

 用于增加数据:

   add(E e):添加成功返回True,失败返回False

   addAll(Collection c) 将参数集合中的元素添加到调用对象集合中.

用于删除数据:

   clear():移除集合所有的元素

  remove(Object o):删除集合中指定的元素

   removeAll(Collection o):删除调用集合中的o集合中的所有元素

  retainAll(Collection o):保留调用集合中与集合o中元素相同的元素,其他全部删除

用于查看:

  size() :查看集合元素的个数

用于判断:

  isEmpty():判断集合是否为空

  contains(Object o):判断调用集合元素中是否有o对象

   containsAll(Collection c):判断集合中是否存在有c集合

 

Collection的子接口:List类

常用方法:

用于增加:

  void add(int index,E element):将E元素添加到集合的index位置

  boolean addAll(int index,Collection c):将集合c中的元素添加到调用集合的index处,如果失败会返回false,成功会返回true

用于获取:

  Object get(int index):获取调用集合中index位置的元素

  indexOf(Object o):获取调用集合中对象中o对象出现的位置索引值

  lastIndexOf(Object o):获取调用集合对象中o对象最后一次出现的位置索引值

  List subList(int fromIndex,int toIndex):返回调用集合中位置索引值为fromIndex到toIndex值的所有元素,返回值为集合.

用于修改:

  set(int index,E element) 将索引值为index的元素替换成element对象,并将替换后的元素返回.

 

List接口有俩个常用实现类,

ArrayList

当ArrayList的容量不够时,会自动增长为原来的1.5倍.在内存空间的地址是连续的,所以ArrayList数据查找速度快,但是增删数据慢.

ArrayList的大多数常用方法都是从Collection和List那继承来的,就不再介绍了.

 

LinkedList

LinkedList和ArrayList相反,虽然查询速度慢,但是增加和删除元素快,因为LinkedList类底层是用链表来实现的,

每次查找元素需要从头往下找.

常用方法:

void addFirst(Object o) :将指定元素插入到此列表的开头

void addLast(Object o):将制定元素插入到此列表的结尾

Object getFirst():获取列表第一个元素

Object getLast():获取列表最后一个元素

Object removeFirst():移除并返回此列表的第一个元素

Object removeLast():移除并返回此列表的最后一个元素

 

 

Iterator迭代器

为了方便处理集合中的元素,提供了一些方法来处理集合中的元素.

就是Iterator了

Iterato迭代器获取:(使用集合自带的iterator方法)

Iterator i=集合对象.iterator();//获得自身的迭代器

常用方法:

boolean hasNext() :检查是否还有元素可以迭代,如果有则返回true,无返回false

next() :返回迭代的下一个元素

remove():删除迭代器返回的最后一个元素,从Iterator指向的collection中.

 

Iterator常与while语句配合使用:

while(iterator.hasNext())

    System.out.println(itrator.next());

 

 

 

Collection的另一个子接口:Set

Set与List不同的是:Set存储数据是无序的,并且存入的数据是不可重复的(按照某种规则)

 

Set有俩个实现类:

HashSet:根据对象的哈希码值来确定元素在集合中的存储位置,所以具有良好的存取和查询能力

TreeSet:已二叉树的方式来存储元素,他可以实现对集合中的元素进行排序.

 

第十一章·mha高可用及读写分离(代码片段)

一.MHA简介1.作者简介松信嘉範:MySQL/Linux专家2001年索尼公司入职2001年开始使用oracle2004年开始使用MySQL2006年9月-2010年8月MySQL从事顾问2010年-2012年DeNA2012年~至今Facebook2.软件简介MHA能够在较短的时间内实现自动故障检测和故障转移,... 查看详情

第十一章关联容器(代码片段)

使用关联容器使用set1#include<iostream>2#include<string>3#include<map>45usingnamespacestd;67intmain()89map<string,size_t>word_count;10stringword;11while(cin>>word)12++word_count[ 查看详情

第十一章springboot事物管理器(代码片段)

一、springboot整合事物管理 springboot默认集成事物,只主要在方法上加上@Transactional即可二、SpringBoot分布式事物管理使用springboot+jta+atomikos 分布式事物管理 1、pom文件<parent><groupId>org.springframework.boot</groupI 查看详情

第十一章:random库概述(代码片段)

random库是使用随机数的python标准库伪随机数:采用梅森旋转算法生成的伪随机序列中的元素random库主要用于产生随机数使用random库:importrandomrandom库的概述:random库包括两类函数,常用共8个基本随机数函数:seed(),random()扩展随... 查看详情

第十一章:线程(代码片段)

 多进程在代码中并不多见,因为它有很大的局限性,如分配大量资源、进程的PID个数有限等。现在更多地是使用多线程实现代码并发。一、线程的概念线程是一种轻量级的代码并发技术,对资源的要求较小。线程隶属于某个... 查看详情

第十一章lamp架构(代码片段)

11.1LAMP架构介绍Q:httpd和php为什么需要组合在一起,不能分开部署在不同的节点使用网络来进行数据协同吗?A:因为我们使用的方式是,php作为httpd的一个模块存在的。?他们两者必须要在一起,才能实现效果。当然,如果你把php做... 查看详情

cprimerplus(第六版)第十一章编程练习答案(代码片段)

前言:这次感觉融起来了,各章的知识都有用到,不过这次时间隔的是够久的。仅供参考,新手勿喷。CH11 Codeanswer1:#include<stdio.h>#defineSIZE100voids_gots(char*);intmain(void) charstr[SIZE]; printf("Enteryourstr 查看详情

王志成/王之泰《面向对象程序设计(java)》第十一周学习总结(代码片段)

理论学习部分:JAVA的集合框架lJAVA的集合框架实现对各种数据结构的封装,以降低对数据管理与处理的难度。l所谓框架就是一个类库的集合,框架中包含很多超类,编程者创建这些超类的子类可较方便的设计设计程序所需的类... 查看详情

第十一章django框架学习——cookie和session

第十一章Django框架学习——Cookie和session 一、Cookie简介二、装饰器版登录校验三、session简介四、如何在CBV中使用装饰器 一、Cookie简介什么是Cookie(what):Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上... 查看详情

达拉草201771010105《面向对象程序设计(java)》第十一周学习总结(代码片段)

达拉草201771010105《面向对象程序设计(java)》第十一周学习总结实验十一   集合实验时间 2018-11-8第一部分:理论知识1.集合(Collection或称为容器)是一种包含多个元素并提供对所包含元素操作方法的类,其包含的元... 查看详情

javascript进阶第十一章(正则表达式)(完结)(代码片段)

了解正则表达式的作用掌握正则表达式的使用创建正则表达式正则表达式组成边界符字符类正则测试正则表达式概述1.什么是正则表达式正则表达式(RegularExpression)是用于匹配字符串中字符组合的模式。在JavaScript中࿰... 查看详情

《汇编语言基于x86处理器》第十一章ms-dos编程部分的代码part2(代码片段)

?书中第十一章的程序,主要讲了Windows接口,在小黑框中进行程序交互● 在屏幕指定位置输出带自定义属性的文字1INCLUDEIrvine32.inc23.data4outHandleHANDLE?5cellsWrittenDWORD?;输出计数(输出参数)6xyPosCOORD<10,2>;输出坐标7bufferBYTE41h,... 查看详情

第十一章

因为是手机上传,有些图没有上传好,晚上回去重新弄。 查看详情

构建之法第十一章读后感

本周进行了构建之法的第十一章软件设计与实现的学习;第十一章主要讲了典型的开发流程,常见的分析和设计方法:ERD,DFD,UML,开发阶段的一些管理方法:每日构建,小强地狱,构建大师;分析和设计方法包括以文字为主的... 查看详情

第十一章:类和对象

一.类是对一群有共同特征的事物或事件的集合。而类对象就是类的实例化。 二.类中的成员对象:(1)一个类的所有对象对应同一个类对象,如现实世界中的动物是一种类,植物也是一种类,可以理解人就是动物类的一种对... 查看详情

2016710101192016-2017-2《java程序设计》第十一周学习心得

    本周老师调整了一下教学目标,在周四课堂上对我们前几周遗留下来的编程中不会的知识结合自己的代码进行了详细讲解。通过老师的讲解,我对身份证程序中不会做的一部分已经掌握。在周五课堂上,老师重... 查看详情

王颖奇20171010129《面向对象程序设计(java)》第十一周学习总结(代码片段)

 实验十一   集合实验时间 2018-11-81、实验目的与要求(1) 掌握Vetor、Stack、Hashtable三个类的用途及常用API;(2) 了解java集合框架体系组成;(3) 掌握ArrayList、LinkList两个类的用途及常用API。(4) 了解Hash... 查看详情

第十一章网络编程

--------------------------------------------------------Sun11Feb13:30:10GMT2018--------------------------------------------------------第十一章网络编程11.1Theclient-ServerprogrammingModelThefundamentaloperati 查看详情