一、集合的由来

  通常,我们的Java程序需要根据程序运行时才知道创建了多少个对象。但若非程序运行,程序开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是!数组只能存放同一类型的数据,而且其长度是固定的,那怎么办了?集合便应运而生了。

data = new int[3]; /*创建了一个int类型长度为3的数组*/
data[0] = 10; // 第一个元素
data[1] = 20; // 第二个元素
data[2] = 30; // 第三个元素
for(int x = 0; x < data.length; x++) {System.out.println(data[x]); //通过循环输出数组}

二、集合是什么?

  是一个用来存放对象的容器。可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。

三、集合框架体系系图

四、list中ArraryList

ArrayList是基于动态数组的数据结构。

五、List中ArrayList常用方法

Boolean add( Object element)  // 顺序添加一个元素
  void add(int index, Object element) // 添加对象element到位置index上 ;
  get(int index)   //获取下标为index的位置的元素
  int indexOf(Object element) // 获取 element第一次出现的位置
  int lastIndexOf(Object element) //获取在List中最后出现的位置  
  remove(int index)  ://删除index位置上的元素 
  int size()   //集合中元素个数

//1.初始化一个list
List<String> cdlist=new ArrayList<>();
//2.向list中添加几道菜名;
//Boolean add( Object element)
Boolean b1=cdlist.add("红烧肉");
System.out.println("添加一道菜结果:"+b1);
//void add(int index, Object element)  添加对象element到位置index上 ;注意:index必须小于当前数组中的元素个数
cdlist.add(1,"椒盐虾");
cdlist.add(2,"小蘑菇炖鸡");
cdlist.add(3,"东坡肘子");
cdlist.set(1,"椒盐虾2");
System.out.println("list:"+cdlist);
//3.get(int index)  取出下标为index的位置的元素
//System.out.println(cdlist.get(5));
//会造成数组下标越界异常:Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 3
System.out.println(cdlist.get(1));
//4.int indexOf(Object element) :查找对象element 在List中第一次出现的位置;注意:list下标是是从0开始;
int num=cdlist.indexOf("小蘑菇炖鸡");
System.out.println("第一个小蘑菇炖鸡排在第:"+(num+1)); //5.int lastIndexOf(Object element) :查找对象element 在List中最后出现的位置
cdlist.add("小蘑菇炖鸡");
cdlist.add("小蘑菇炖鸡");
System.out.println("最新list:"+cdlist);
System.out.println("最后一个小蘑菇炖鸡排在第:"+(cdlist.lastIndexOf("小蘑菇炖鸡")+1));
//6.remove(int index) :删除index位置上的元素 cdlist.remove(0);
System.out.println("最新list:"+cdlist);
//7. void clear() 清空;
//cdlist.clear();
System.out.println("最新list:"+cdlist);//8.int size() 元素个数
System.out.println("元素个数"+cdlist.size());
//循环遍历listfor(int i=0;i<cdlist.size();i++) {System.out.println("第"+i+"个菜品名称是:"+cdlist.get(i));}//增强for循环遍历listfor(String Name:cdlist) {System.out.println(Name);}

五、Map 中HashMap

Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。从概念上而言,您可以将 List 看作是具有数值键的 Map。而实际上,除了 List 和 Map 都在定义 java.util 中外

六、Map的常用用法

clear() 从 Map 中删除所有映射
remove(Object key) 从 Map 中删除键和关联的值
put(Object key, Object value) 将指定值与指定键相关联
putAll(Map t) 将指定 Map 中的所有映射复制到此 map
get(Object key) 从map中获取键为key的值
//实例化一个HashMap
Map<String,Object> cdMap=new HashMap<>();
cdMap.put("当季时蔬","炝炒莲白");
cdMap.put("当季时蔬","干煸四季豆");
cdMap.put("折扣酒水","红星二锅头");// System.out.println(cdMap);
//get(Object key)   从map中获取键为key的值
System.out.println(cdMap.get("折扣酒水"));
//remove(Object key)    从 Map 中删除键和关联的值
cdMap.remove("折扣酒水");
System.out.println(cdMap);
//putAll(Map t) 将指定 Map 中的所有映射复制到此 map
Map  tempMap=new HashMap<>();
tempMap.put("夏季菜单", cdMap);
System.out.println(tempMap);

JAVA集合中常见的List和Map用法相关推荐

  1. java api集合,javaAPI_集合基础_集合中常见操作示例

    集合中常见的操作 1.list集合去重 //使用HashSet去重 public static List removeDuplicate(List list) { HashSet h = new Ha ...

  2. 【腾讯面试题】Java集合:List、Set以及Map

    Java集合:List.Set以及Map 概述 Collection接口 List:有序,可重复 ArraysList Vector LinkedList Set:无序,唯一 HashSet Link ...

  3. Java集合框架总结(5)——Map接口的使用

    Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回fa ...

  4. Java 集合框架分析:JAVA集合中的一些边边角角的知识

    相关文章: Java 集合框架分析:Set http://blog.csdn.net/youyou1543724847/article/details/52733723 Java 集合框架分析:Lin ...

  5. Java集合中contains方法的效率对比

    Java集合中contains方法的效率对比 Java集合List.Set中均有对集合中元素是否存在的判断方法contains(Object o):Map中有对key及value是否存在的判断方法co ...

  6. Java - Java集合中的安全失败Fail Safe机制 (CopyOnWriteArrayList)

    文章目录 Pre 概述 fail-safe的容器-CopyOnWriteArrayList add remove函数 例子 缺陷 使用场景 Pre Java - Java集合中的快速失败Fail Fa ...

  7. 三十九、Java集合中的HashSet和TreeSet

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  8. java面试技术问题_11个JAVA面试中常见技术问题

    原标题:11个JAVA面试中常见技术问题 大家在平常面试java的过程中都会遇到哪些难题呢?还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到 ...

  9. Java开发中常见的危险信号(中)

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...

  10. Java开发中常见的危险信号(下)

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-3 Dustin Ma ...

最新文章

  1. Quora Question Pairs 项目参考资料
  2. Go gin web框架介绍
  3. mysql 分组查出来横向展示_Mysql探索(一):B+Tree索引
  4. dealloc 的水,很深?
  5. [AtCoder Beginner Contest 215] A-G题解
  6. 支付宝pc支付php,laravel框架下的pc支付宝支付接入
  7. 结对开发——求最大值
  8. android制作相册浏览器_一分钟简单制作一个专属于自己的卡通头像
  9. (STL,set)安迪的第一个字典
  10. poj 1125 Stockbroker Grapevine(Folyd)
  11. 华为的型号命名规则_iQOO新品入网;三星Galaxy S21首张官方渲染图曝光;华为nova8真机曝光...
  12. 通过YAJL生成json语句
  13. 3种时间复杂度实现不同类型的无序数组去重
  14. java控制zebra打印机_从Zebra打印机读取状态
  15. 电脑接收,怎么在电脑上发传真 在电脑上接收传真方法介绍【详细步骤】
  16. day05 Servlet组件(上)
  17. html风琴图片展示,炫酷的jQuery手风琴图片和菜单插件及源码
  18. 一起来找茬:记一起 clang 开启 -Oz 选项引发的血案
  19. Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料
  20. 模拟GRE隧道建立过程

热门文章

  1. 机械硬盘 与 固态硬盘SSD
  2. 倪光南院士2006年9月1号在南京软件博览会上的讲话
  3. pika详解(四) channel 通道
  4. Xcelsius 的苦难日子
  5. 算法注册机编写扫盲之续篇---第三课
  6. 一行代码实现网站移动化的原理与实现
  7. 三分钟带你详解SSL认证与加密技术
  8. 【MYSQL】【基础知识】【mysql联合主键如何 in查询】
  9. nodejs打开默认浏览器
  10. 身份实名认证API开发文档