一、集合

`

二、Collection类

Collection 是单列的顶层类。
Collection是接口。
创建对象需要借助多态。
//e为集合中数据类型
//ArrayList是List的实现类
Collection<e> collection= new ArrayList<e>();

1、 Collection的常用方法

Collection<String> collection= new ArrayList<String>();
//向collection中增加元素
boolean ad = collecion.add(String value);
//从collection中删除指定元素
boolean rem = collection.remove(String value);
//清除所有元素
void cle = collection.clear();
//判断是否为空
boolean isE = collection.isEmpty();
//集合中元素个数
int count = collection.size();

2、迭代器

Collection<String> collection= new ArrayList<String>();
//it 为迭代器对象
Iterator it = collection.Iterator();
迭代器对象方法
boolean result = it.hasNext();//是否有下一个
String result = it.next();//下一个元素

三、List

有序的集合,有索引
List<String> list = new ArrayLsit<String>();
特有方法
//获取指定位置的元素
String s = list.get(int index);
//在指定位置加元素
String s = list.add(int index,String str);
//修改指定位置的元素
String s = list.set(int index,String str);
//删除指定位置的元素
String s = list.remove(int index);

迭代器

List的迭代器可以获取倒序遍历,
倒序遍历前提:指针位于集合最后一个元素
ListIterator<E> lis = list.listIterator();
boolean lis.hasPrevious();
E lis.previous();

四、List的遍历方式

ArrayList<String> list = new ArrayList<E>();

1、使用迭代器

Iterator it = list.Iterator();
while(it.hasNext()){
String value = it.next();
}

2、普通for

for(int i =0;i<list.size();i++){
String s = list get(i);
}

3、增强for

for(String value : list){
String s = value
}

五、ConcurrentModificationException异常

产生原因:
迭代器是依靠集合生成的。
如果在使用迭代器的时候同时通过集合来修改集合元素个数,那么迭代器无法正确识别集合元素个数,导致报错。
解决方案:
1、通过迭代器修改个数
2、获取元素的不采用迭代器,直接使用for循环
两种方案的差异:
1、第一种加入的元直接加在当前迭代器指针位置的后一个
2、第二种加载元素的最后一个

六、基本数据结构

1、栈

先进后出
进栈:压栈
出栈:弹栈

2、队列

先进先出

3、数组

查询方便
增加数据的时候,每次都需要新建一个新的数组,然后将旧数组的数据增加或者删除到新的数组。 比较耗时间。

4、链表

增删方便,
每一个元素保存元素数值、当前元素位置,下一个元素的位置
查询数据的时候每次都需要从头开始查询,比较耗时间。

11JAVA基础-集合的更多相关文章

  1. page74-泛型可迭代的基础集合数据类型的API-Bag+Queue+Stack

    [泛型可迭代的基础集合数据类型的API] 背包:就是一种不支持从中删除元素的集合数据类型——它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素.(用例也可以检查背包是否为空, 或者获取背包中元素的 ...

  2. JAVA基础-集合(二)

    一.Map整体结构体系 Map是集合的另一大派系,与Collection派系不同的是Map集合是以键值对儿的形式存储在集合的.两个键为映射关系,其中第一个键为主键(主键是唯一的不可重复),第二个键为v ...

  3. Java18-java语法基础——集合框架

    Java18-java语法基础——集合框架 一.什么是集合框架 1.集合框架:是为表示和操作集合而规定的一种统一的.标准的体系结构. 2.任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运 ...

  4. Java基础-集合的嵌套

    Java基础-集合的嵌套 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.静态导入 静态导入是在JDK1.5后的新特性,可以减少开发的代码量,但是实际用处是很一般,静态导入的标准 ...

  5. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  6. [c#基础]集合foreach的必要条件和自定义集合

    引言 最近翻看了之前的学习笔记,看到foreach,记得当时老师讲的时候,有点犯浑,不是很明白,这好比,上小学时,你不会乘法口诀,但是随着时间的增长,你不自觉的都会了,也悟出个小道理,有些东西,你当时 ...

  7. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  8. 2017-3-2 C#基础 集合

    要使用集合必须先引用命名空间,using System.Collections; 集合与数组的不同: 数组:同一类型,固定长度集合:不同类型,不固定长度 集合主要分为六大类:普通集合,泛型集合,哈希表 ...

  9. C#基础——集合及特殊集合

    集合 集合的基本信息: Systerm.Collections命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合. Systerm.Collections.Ge ...

随机推荐

  1. 使用NLP从文章中自动提取关键字

    背景 在研究和新闻文章中,关键词构成了一个重要的组成部分,因为它们提供了文章内容的简洁表示.关键词在从信息检索系统,书目数据库和搜索引擎优化中定位文章方面也起着至关重要的作用.关键词还有助于将文章分类 ...

  2. 杂园日记-获取URL参数

    function getUrlParams(name, url){ var locationUrl = window.location.search; if(url){ var s =url.inde ...

  3. 2019-2020-1 20199310《Linux内核原理与分析》第九周作业

    1.问题描述 在前面的文章中,学习了译链接的过程和ELF可执行文件格式,对Linux内核装载和启动一个可执行程序,本次内容围绕对进程调度的时机和进程切换进行,分析进程的调度时机,调度策略和算法,并跟踪 ...

  4. 2019-2020-1 20199328《Linux内核原理与分析》第四周作业

    <Linux内核原理与分析>第四周作业 步骤一 首先我们指定一个内核并指定内存根文件系统,这里的bzImage是vmLinux经过gzip压缩的内核,"b"表示&quo ...

  5. Linux 文件常用权限

    -rw------- (600) 只有所有者才有读和写的权限 -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 -rwx------ (700) 只有所有者才有读 ...

  6. .Net平台GC VS JVM垃圾回收

    前言 不知道你平时是否关注程序内存使用情况,我是关注的比较少,正好借着优化本地一个程序的空对比了一下.Net平台垃圾回收和jvm垃圾回收,顺便用dotMemory看了程序运行后的内存快照,生成内存快照 ...

  7. history of program atan2(y,x)和pow(x,y)

    编年史 1951 – Regional Assembly Language 1952 – Autocode 1954 – IPL (LISP语言的祖先) 1955 – FLOW-MATIC (COBO ...

  8. mac OS 安装淘宝npm镜像

    淘宝npm镜像官网 https://npm.taobao.org/ 在终端输入 npm install -g cnpm --registry=https://registry.npm.taobao.o ...

  9. 蚂蚁金服合作的RISE实验室到底有多牛?

    近日,蚂蚁金服与美国加州伯克利大学近期新成立的RISE实验室达成合作意向.RISE实验室的前身是著名伯克利AMP实验室,主导研发了当今大数据计算领域最前沿的开源系统:Apache Spark.Apac ...

  10. Vue.js中scoped引发的CSS作用域探讨

    前言 在Vue.js的组件化开发中,常常会对某个组件的style标签加上scoped属性,如<style lang='less' scoped>,这样做的目的在于使这个组件的样式不能轻易在 ...