JAVA集合中常见的List和Map用法
一、集合的由来
通常,我们的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用法相关推荐
- java api集合,javaAPI_集合基础_集合中常见操作示例
集合中常见的操作 1.list集合去重 //使用HashSet去重 public static List removeDuplicate(List list) { HashSet h = new Ha ...
- 【腾讯面试题】Java集合:List、Set以及Map
Java集合:List.Set以及Map 概述 Collection接口 List:有序,可重复 ArraysList Vector LinkedList Set:无序,唯一 HashSet Link ...
- Java集合框架总结(5)——Map接口的使用
Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回fa ...
- Java 集合框架分析:JAVA集合中的一些边边角角的知识
相关文章: Java 集合框架分析:Set http://blog.csdn.net/youyou1543724847/article/details/52733723 Java 集合框架分析:Lin ...
- Java集合中contains方法的效率对比
Java集合中contains方法的效率对比 Java集合List.Set中均有对集合中元素是否存在的判断方法contains(Object o):Map中有对key及value是否存在的判断方法co ...
- Java - Java集合中的安全失败Fail Safe机制 (CopyOnWriteArrayList)
文章目录 Pre 概述 fail-safe的容器-CopyOnWriteArrayList add remove函数 例子 缺陷 使用场景 Pre Java - Java集合中的快速失败Fail Fa ...
- 三十九、Java集合中的HashSet和TreeSet
@Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- java面试技术问题_11个JAVA面试中常见技术问题
原标题:11个JAVA面试中常见技术问题 大家在平常面试java的过程中都会遇到哪些难题呢?还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到 ...
- Java开发中常见的危险信号(中)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...
- Java开发中常见的危险信号(下)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-3 Dustin Ma ...
最新文章
- Quora Question Pairs 项目参考资料
- Go gin web框架介绍
- mysql 分组查出来横向展示_Mysql探索(一):B+Tree索引
- dealloc 的水,很深?
- [AtCoder Beginner Contest 215] A-G题解
- 支付宝pc支付php,laravel框架下的pc支付宝支付接入
- 结对开发——求最大值
- android制作相册浏览器_一分钟简单制作一个专属于自己的卡通头像
- (STL,set)安迪的第一个字典
- poj 1125 Stockbroker Grapevine(Folyd)
- 华为的型号命名规则_iQOO新品入网;三星Galaxy S21首张官方渲染图曝光;华为nova8真机曝光...
- 通过YAJL生成json语句
- 3种时间复杂度实现不同类型的无序数组去重
- java控制zebra打印机_从Zebra打印机读取状态
- 电脑接收,怎么在电脑上发传真 在电脑上接收传真方法介绍【详细步骤】
- day05 Servlet组件(上)
- html风琴图片展示,炫酷的jQuery手风琴图片和菜单插件及源码
- 一起来找茬:记一起 clang 开启 -Oz 选项引发的血案
- Physically Based Rendering——史上最容易理解的BRDF中D函数NDF的中文资料
- 模拟GRE隧道建立过程