集合概述:集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变



集合类有很多先看ArrayList

ArrayList<E>:可以调整大小的数据实现,<E>:是一种特殊的数据类型,泛型。

<E>如何使用呢?

在出现的地方我们使用引用数据类型替换即可。举例:ArrayList<String>,ArrayList<Student>

ArrayList构造方法和添加方法:

public ArrayList();-------------创建一个空的集合对象

public boolean add(E e);-------------将指定元素追加到此集合的末尾

public void add(int index,E element);---------------在此集合指定位置插入指定的元素

import java.util.ArrayList;public class demo {public static void main(String[] args) {ArrayList<String > array =new ArrayList<String>();array.add("hello");array.add("java");array.add("keke");System.out.println(array);array.add(3,"wang");System.out.println(array);}
}

集合如同数组一样,元素也是从零开始,但是可以在末尾添加元素,如果超过末尾添加,就会报集合越界异常

ArrayList集合常用方法:

public  boolean  remove(Object  o);--------------删除指定的元素,返回删除是否成功

public  E  remove(int  index);-----------------删除指定索引处的元素,返回被删除的元素

public  E  set(int  index,E  element);-----------------修改指定索引处的元素,返回被修改的元素

public E get(int  index);---------------------返回指定索引处的元素

public  int  size();------------------返回集合中元素的个数

import java.util.ArrayList;public class demo1 {public static void main(String[] args) {ArrayList<String> array = new ArrayList<>();array.add("hello");array.add("word");array.add("xiaowang");array.remove("word");//这样直接调不会输出trueSystem.out.println(array.remove("hello"));//这样会输出trueSystem.out.println(array.remove("he"));//这样会输出falseSystem.out.println(array);/*array.remove(1);  //这样直接调不会返回被删除的元素System.out.println(array.remove(2));//这样会返回被删除的元素System.out.println(array.remove(5));//索引越界异常System.out.println(array);*//*array.set(1,"keke"); //修改了1索引处内容,没有返回System.out.println( array.set(1,"keke"));//修改了1索引处内容,有返回System.out.println(array);*//*array.get(2);System.out.println(array.get(2)); //得到了2索引处内容System.out.println(array);*/System.out.println(array.size());}
}


集合遍历格式:

for (int i=0;i<集合对象.size();i++){

集合对象.get(i)   就是指定索引处的元素

}



集合的体系结构:(红色标注的为接口,紫色标准的为实现类

集合分为:Collection(单列集合)和Map(双列集合)

Collection(单列集合):分为List(存储元素可重复集合)和Set(存储元素不可重复集合)

List(存储元素可重复集合):分ArrayList,LinkedList等

Set(存储元素不可重复集合):分HashSet,TreeSet等

Map(双列集合):分HashMap等

这里是接口的是:Collection  ,Map   ,List , Set

这里是实现类的是:ArrayList,LinkedList,HashSet,TreeSet,HashMap



Collection集合概述和使用:

Collection是单列集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

jdk不提供此接口的任何直接实现,它提供更具体的子接口(如List 和Set)实现

创建Collection集合对象:采用多态的方式,具体实现类ArrayList

public static void main(String[]  args){
Collection <String>  c = new ArrayList<String>();//创建对象
}


Collection集合常用方法:

boolean  add(E e);--------------添加元素          

boolean  remove(Object  o);-----------------从集合中移除指定的元素

boolean  contains(Object  o);-----------------判断集合中是否存在指定的元素

void clear;-----------------清空集合中的元素

boolean  isEmpty();---------------------判断集合是否为空

int  size();------------------集合中元素的个数,集合长度



Collection集合的遍历

Iterator:迭代器,集合的专用遍历方式

Iterator<E> iterator();返回此集合中元素的迭代器,通过集合的iterator();方法得到

因为迭代器是通过集合的iterator();方法得到,所以我们说它依赖于集合而存在

Iterator中的常用方法:

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

boolean hasNext:如果迭代具有更多元素,则返回true

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demo2 {public static void main(String[] args) {Collection<String> c = new ArrayList<String >();c.add("xue");c.add("xi");c.add("java");Iterator<String>  i = c.iterator();while (i.hasNext()){String s= i.next();System.out.println(s);}}
}


Collection集合的使用步骤:

创建集合对象

添加元素:创建元素,添加元素到集合

遍历集合:通过集合对象获取迭代器对象,判断是否有元素,获取元素




List集合概述和特点:

List集合概述:有序集合(也称序列)用户可以精准控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。与Set集合不同,列表通常允许重复的元素

List集合的特点:有序:存储和取出的元素顺序一致。可重复:存储的元素可以重复

LIst集合特有方法:

void  add (int  index, E element);--------------在集合中的指定位置插入指定的元素

E  remove(int  index);-----------------删除指定索引处的元素,返回被删除的元素

E  set(int  index,E  element);-----------------修改指定索引处的元素,返回被修改的元素

E get(int  index);---------------------返回指定索引处的元素

import java.util.ArrayList;
import java.util.List;public class demo {public static void main(String[] args) {List<String> array = new ArrayList<String>();array.add("hello");array.add("java");array.add("keke");System.out.println(array);array.add(3, "wang");array.remove(3);array.set(1, "xiang");System.out.println(array.get(0));System.out.println(array);for (int i = 0; i < array.size(); i++) {String s = array.get(i);System.out.println(s);}}
}

什么是集合?集合的相关知识相关推荐

  1. java集合——集合框架

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合框架 的相关知识: [1]集合框架 1.1) java集合类库构成了集合 ...

  2. Java之集合(最全集合相关知识)

    集合 集合 一.集合概述 1.为什么要学习集合? 2.定义 3.说明 4.注意 5.集合分类 5.1 单列集合Collection 5.2 双列集合Map 二.Collection接口 1.相关方法 ...

  3. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)

    IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...

  4. java学习--基础知识进阶第七天--HashSet集合、HashMap集合(集合遍历)

    今日内容介绍 u  HashSet集合 u  HashMap集合(集合遍历) 第1章 HashSet集合 1.1 Set接口的特点   Set体系的集合: A:存入集合的顺序和取出集合的顺序不一致 B ...

  5. WinForm开发,窗体显示和窗体传值相关知识总结

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...

  6. 路由相关知识,静态路由、默认路由、浮动路由的概念以及基本设置

    路由相关知识,静态路由.默认路由.浮动路由的概念以及基本设置 选取最佳路由时的标准 路由表 路由表的形成 静态路由概念 静态路由的优点和缺点 默认路由 浮动路由 路由协议分类 静态路由.默认路由.浮动 ...

  7. 并查集的相关知识详解 Come baby!!!

    一:并查集的相关知识 这道题用到了并查集,所以我就学了一下并查集,所以把自己的见解也分享给大家(建议 先看视频 再浏览 博客 再自己敲一遍 学习效率高而已,我总是乱着来 以为看几篇博客就会了,其实最后 ...

  8. java集合——集合与数组间的转换+算法

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合与数组间的转换+算法 的相关知识: 0.2) for full sour ...

  9. java集合——集合接口+迭代器接口

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码 diy 的, 旨在理解 java集合框架--集合接口+迭代器接口 的相关知识: 0.2) for full ...

  10. 【Python】元组和列表相关知识总结

    python中,我们经常用到元组和列表,本文主要总结了一下元组和列表的一些基本用法. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

最新文章

  1. MySQL RR隔离级别的更新冲突策略
  2. 英国最新报告:40% AI公司其实没用任何AI技术
  3. idea 设置光标回到上一次位置的快捷键
  4. MYSQL: MERGE引擎实现多分表的联合
  5. java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型
  6. [转]《帮我买个单》
  7. “进度条”博客——第十三周
  8. 光电经典好书:《光电系统设计基础》-吴晗平
  9. python花瓣_Python 花瓣网动态爬虫
  10. 朗文3000词汇表带音标_SBS朗文国际英语教程第二册单词表(带音标)
  11. 开源GIS-01-开源库的编译
  12. 对事件流的小故事理解
  13. wow插件入门资源整理
  14. 把互联网界的大牛——王煜全老师开出的书单和大家分享一下
  15. 「技巧」如何快速安装 Sketch 插件
  16. Xposed插件编写
  17. 购买新款macbook pro,现在买还是等双十一?
  18. Docker构建harbor+IDEA,一篇文章就够了
  19. 瑞利散射 拉曼散射 米散射_使用Cartopy的时移散射图可视化
  20. 前端开发面试知识点大纲

热门文章

  1. 防火墙Deny记录实时检测
  2. 门禁控制器的选购指南
  3. 交错和 (hihocoder)
  4. TCAM与HASH表的差异
  5. 编程题——Fibonacci数列
  6. SpringCloud(7) LCN分布式事务框架入门
  7. C++实现九九乘法 (by yzs-device)
  8. 小型气象站参数有哪些
  9. 《薛兆丰经济学讲义》阅读笔记|第一节-真实世界 经济学的视角
  10. 从认知智能的角度认识ChatGPT的不足