集合的使用

List集合的使用


/*
* List: 是Collection的子接口,列表的意思,可以认为有序列表
* 特性:1、放入的元素是有序的,2、元素可以重复
* List是接口不能实例化,如果想使用列表集合,必须要通过它的实现类实例化对象来使用
*           List 下两个常见的实现类
*               ArrayList数组列表
*               LinkedList双向链表
* 最常用的列表的创建方式:
*           (文类引用指向子类实例对象的方式)
*           List<类型> list = new ArrayList<类型>();
* 需要掌握的是List常用的方法及遍历操作
* List 下常用的方法
*           add(元素)往列表中添加数据
*           get(index)获取列表中指定位置的元素
*           set(index,元素)给列表中指定位置设置元素
*           size()获取元素的大小(元素的个数)
*           contains(元素)判断列表当中是否包含某个元素
*           remove(index)删除元素
*           clear():从List集合中移除所有元素。该方法是从Collection集合继承过来的。
* 判断元素
*       isEmpty():判断List集合中是否有元素,没有返回true,有返回false。该方法是从Collection集合继承过来的。
*       contains(Object element):判断List集合中是否包含指定元素,包含返回true,不包含返回false。该方法是从Collection集合继承过来的。
* 查询元素
*       indexOf(Object o):从前往后查找List集合元素,返回第一次出现指定元素的索引,如果此列表不包含该元素,则返回-1。
*       lastIndexOf(Object o):从后往前查找List集合元素,返回第一次出现指定元素的索引,如果此列表不包含该元素,则返回-1。
*
* List的遍历:
*       (1)使用索引进行遍历,普通for 循环
*           for (int i = 0; i<list.size(); i++){
*               System.out.println(list.get(i));
*           }
*
*       (2)强for循环
*           for (String str:list) {
*               System.out.println(str);
*           }
*
*       (3)使用送器Iterator遍历
*           //Iterator it = list.iterator();
*           Iterator<String> it = list.iterator();
*           while (it.hasNext()) {
*               //Object item = it.next();
*               String s = it.next();
*               //String s = (String) item;
*               System.out.println("读取集合元素: " + s);
*           }
*
* List下的另一个实现类LinkedList双向链表
*       相比ArrayList进行数据删除修改添加的操作时效率要高
* */
public class Test1 {public static void main(String[] args) {/** 创建一个存放字符串的列表* */List<String> list = new ArrayList<>();/** 1、添加元素* */list.add("11");list.add("22");list.add("33");list.add("44");/** 2、获取元素*       get(index)* */System.out.println(list.get(0));/** 3、设置元素或者修改元素* */list.set(1,"55");/** 报错,List的长度根据放入数据个数来决定* */
//        list.set(10,"10");/** 4、删除元素* */list.remove(2);/** 是否包含某个元素*       contains(元素)* */System.out.println(list.contains("55"));System.out.println("___________普通循环___________");for (int i = 0; i<list.size(); i++){System.out.println(list.get(i));}/** 增强for循环* for(列表对应数据类型 变量名 : 列表名){* }* 意为: 将列表当中的每一个元素循环取出来给到对应的变量* */System.out.println("___________增强for循环________");for (String str:list) {System.out.println(str);}System.out.println("___________迭代器_____________");/** 通过送代的方式获取List中的每一个元素*   hasNext是用来判断下一个位置是否有值*   如果有就使用next获取下一个位置的值* */Iterator<String> it = list.iterator();while (it.hasNext()) {
//            Object item = it.next();String s = it.next();
//            String s = (String) item;System.out.println("读取集合元素: " + s);}LinkedList<String> list1 = new LinkedList<>();list1.add("11");list1.add("55");list1.add("44");
//        往列表中第一个位置添加一个元素list1.addFirst("00");list1.add(1,"101");Iterator<String> it1 = list1.iterator();while (it1.hasNext()){System.out.println(it1.next());}}
}

CoLLection

/*
* CoLLection的子接口Set,无序列表
*       特性: 放入的元素是没有顺序的
*            元素不能重复
* 创建Set集合的方式,使用set接口下的实现类:
*       最常用的:
*               HashSet
*       Set<类型> set = new HashSet<类型>();
* 掌握set的增删改查及遍历
*   操作元素
*       add(Object element):在Set集合的尾部添加指定的元素。该方法是从Collection集合继承过来的。
*       remove(Object element):如果Set集合中存在指定元素,则从Set集合中移除该元素。该方法是从Collection集合继承过来的。
*       clear():从Set集合中移除所有元素。该方法是从Collection集合继承过来的。
*   判断元素
*       isEmpty():判断Set集合中是否有元素,没有返回true,有返回false。该方法是从Collection集合继承过来的。
*       contains(Object element):判断Set集合中是否包含指定元素,包含返回true,不包含返回false。该方法是从Collection集合继承过来的。
*   其他
*       iterator():返回迭代器(Iterator)对象,迭代器对象用于遍历集合。该方法是从Collection集合继承过来的。
*       size():返回Set集合中的元素数,返回值是int类型。该方法是从Collection集合继承过来的。
*
* 注意: set相比于List在获取指定位置的元素的时候不太方便,因为没有索引
*       set集合只能用增强for循环和迭代器去便利
*
* 总结: list和set的区别
*       1、List是有序的 (放入元素的顺序) set无序
*       2、List元素可以重复,set不可以
*       3、List有所应,set没有
*了解部分: set其实是基FHashMap 来存放数据的
*       它存放数据的结构链表+数组或者链表+红黑树
* */
public class Test2 {public static void main(String[] args) {Set<String> set = new HashSet();set.add("00");set.add("11");set.add("22");for (String str: set) {System.out.println(str);}set.add("aa");set.add("cd");set.add("99");Iterator<String> it = set.iterator();while (it.hasNext()){System.out.println(it.next());}List<String> list = new ArrayList();list.add("00");list.add("22");list.add("aa");list.add("99");for (String li: list) {System.out.println(li);}}
}

Map集合的使用


/*
*
* Map特性:
*   key不能重复,value 可以重复
*   由key具体映射到具体的value 值如何使用Map进行数据存储,需要用到Map的实现类HashMap
* 多掌握Map的常用方法和遍历:
* 方法:
*   put(key元素,value元素) 一次放入一对数据
*   get(key元素)根据key值获取value
*   remove(key元素)根据key删除此对数据
*   containskey(key元素)
*   containsvalue(value元素)是否包含value
*   keySet() 获取map当中所有key值放入一个set集合中,也就是这个方法返回的是一个存放map 中key值的set集合
*            Set<String> keys = map.keySet();
*           //实现获取此map中所有的key、value值,以key-value的形式打印出来
*           for (String key:keys){
*               System.out.println("key=="+key);
*               System.out.println("value=="+map.get(key));
*           }
*
*   entrySet 返回的是一个存放Map.Entry<key,value>
*       set集合,Map.Entry中的一个Entry可以认为是一对数据
*        //entrySet
*        相当于把map当中的每一对数据作为一个Entry对象放入
*          Set集合当中
*          此处Map.Entry<String,String>认为是一个整体,是一种类型
*          其实和Set<String>一样的
*           Set<Map.Entry<String,Integer>> entries = map.entrySet();
*           for (Map.Entry<String,Integer> entry : entries){
*               System.out.println(entry.getKey());
*               System.out.println(entry.getValue());
*           }
*
* 遍历:
*   (1)使用keySet()获取map当中的所有key值然后通过key值获取每一个value这种方式是最常用而日
*   (2)使用EntrySet
*
*
* 了解HashMap的底层原理(面试高频考点)
*       结构:数组+链表  链表+树结构
*
* Map下其他的实现类:HashTable、TreeMap也可以去了解下
*   HashTable的key值不可为空
*   HashMap可以
*
* */
public class Test3 {public static void main(String[] args) {Map<String,Integer> map = new HashMap<String,Integer>();map.put("1",1);map.put("2",2);map.put("3",3);/** 根据key获取value 值* */System.out.println(map.get("1"));/** 删除数据remove(key)* */map.remove("1");System.out.println(map.get("1"));/** key值重复,会将原来的value 值覆盖* */map.put("3",3);/** 是否包含某个key值* */System.out.println(map.containsKey("2"));/** 第一种遍历方式* */map.keySet();Set<String> keys = map.keySet();//实现获取此map中所有的key、value值,以key-value的形式打印出来for (String key:keys){System.out.println("key=="+key);System.out.println("value=="+map.get(key));}//entrySet/** 相当于把map当中的每一对数据作为一个Entry对象放入*   Set集合当中*   此处Map.Entry<String,String>认为是一个整体,是一种类型*   其实和Set<String>一样的* */Set<Map.Entry<String,Integer>> entries = map.entrySet();for (Map.Entry<String,Integer> entry : entries){System.out.println(entry.getKey());System.out.println(entry.getValue());}Set<User> userSet = new HashSet<>();User zhangsan = new User();userSet.add(zhangsan);for (User u : userSet){System.out.println(u.getAge());System.out.println(u.getName());}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTL货位指引标签为仓储管理打开新思路

PTL货位指引标签是一种新型的仓储管理技术&#xff0c;它通过LED灯光指引和数字显示&#xff0c;为仓库管理带来了全新的管理思路和效率提升&#xff0c;成为现代物流仓库管理中的重要工具。 首先&#xff0c;PTL货位指引标签为仓储管理业务带来了管理新思路。传统的仓库管理中…

17 HTTPDNS详解

前情概要&#xff1a; 我们知道 DNS 的两项功能&#xff0c;第一是根据名称查到具体的地址&#xff0c;另外一个是可以针对多个地址做负载均衡&#xff0c;而且可以在多个地址中选择一个距离你近的地方访问。然而有时候,DNS也会出现偏差&#xff0c;没有指定离你近的ip&#x…

数据结构:AVL树的旋转(平衡搜索二叉树)

1、AVL树简介 AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1&#xff0c;所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis&#xff0c;他们…

flutter项目引入本地静态图片资源并展示

想要在flutter中引入静态资源&#xff0c;需要配置pubspec.yaml&#xff0c;将本地的静态资源添加到assets下面&#xff1a; 然后在flutter引入这些静态资源&#xff1a; Image.asset("images/squick.png") 就可以在app中看到这个图片了&#xff1a; 也可以使用网…

falsk框架中安装flask-mysqldb报错解决方案

错误示例 我的是py37版本&#xff0c;无法直接安装flask-mysqldb pip install flask-mysqldb报错如下 解决方案 先去第三方库 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 下载mysqlclient 这个是我的版本 mysqlclient-1.4.6-cp37-cp37m-win_amd64.whl 下…

[算法日志]图论刷题 沉岛思想的运用

[算法日志]图论刷题: 沉岛思想的运用 leetcode 695 岛屿最大面积 给你一个大小为 m x n 的二进制矩阵 grid . 岛屿 是由一些相邻的 1 (代表土地) 构成的组合, 这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻. 你可以假设 grid 的四个边缘都被 0&#xff08…

贪心,队列,运算符重载,牛客:连环爆炸

C-连环爆炸_第四届辽宁省大学生程序设计竞赛&#xff08;正式赛&#xff09;&#xff08;重现赛&#xff09;兴安真人 (nowcoder.com) 链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空…

软考高级系统架构设计师系列案例考点专题六:面向服务架构设计

软考高级系统架构设计师系列案例考点专题六:面向服务架构设计 一、面向服务架构设计内容大纲二、SOA概述和发展三、SOA和微服务的区别四、SOA的参考架构五、SOA主要协议和规范六、SOA设计标准和原则七、SOA设计模式八、SOA构建和实施一、面向服务架构设计内容大纲 SOA概述和发…

C++ [继承]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT 继承 前言正文继承的概念及定义继承的概念继承的定义重定义 基类和派生类对象赋值转换派生类中的默认成员函数隐式调用显示调用 继承中的友元与静态成员友元静态成员 菱形继承概念 虚继承原理继…

java中对象的引用是什么?

引用和指向 例如&#xff1a; new Student(); 代表创建了一个Student对象&#xff0c;但是也仅仅是创建了一个对象&#xff0c;没有办法访问它。 为了访问这个对象&#xff0c;会使用引用来代表这个对象 Student s new Student(); s这个变量是Student类型&#xff0c;又叫做引…

react组件通信

目录 前言&#xff1a; 父子组件通信 子父组件通信 兄弟组件通信 总结 前言&#xff1a; React是一种流行的JavaScript库&#xff0c;用于构建现代化的、高性能的Web应用程序。在React中&#xff0c;组件是代码的构建块。组件通信是React中一个非常重要的概念&#xff0c;…

Kafka反序列化RCE漏洞(CVE-2023-34040)

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块&#xff0c;用于简化在 Spring 应用程序中集成 Apache Kafka 的过程&#xff0c;记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer&#xff0c;当用户将…

Bean的四种实例化方式以及BeanFactory和FactoryBean的区别

2023.11.8 Spring为Bean提供了多种实例化方式&#xff0c;通常包括4种方式。 第一种&#xff1a;通过构造方法实例化第二种&#xff1a;通过简单工厂模式实例化第三种&#xff1a;通过factory-bean实例化第四种&#xff1a;通过FactoryBean接口实例化 通过构造方法实例化 创…

android display 笔记(三)WMS

用来记录学习wms&#xff0c;后续会一点一点更新。。。。。。 代码&#xff1a;android14 WMS是在SystemServer进程中启动的 在SystemServer中的main方法中&#xff0c;调用run方法。 private void run() { // Initialize native services.初始化服务&#xff0c;加载andro…

FreeRTOS_空闲任务

目录 1. 空闲任务详解 1.1 空闲任务简介 1.2 空闲任务的创建 1.3 空闲任务函数 2. 空闲任务钩子函数详解 2.1 钩子函数 2.2 空闲任务钩子函数 3. 空闲任务钩子函数实验 3.1 main.c 空闲任务是 FreeRTOS 必不可少的一个任务&#xff0c;其他 RTOS 类系统也有空闲任务&a…

广东开放大学:电大搜题助力学子迎考利器

近年来&#xff0c;广东开放大学一直致力于为广大学子提供优质的教育资源和学习服务。作为一所专注于远程教育的学府&#xff0c;广东开放大学不仅拥有雄厚的师资力量和丰富的教育经验&#xff0c;还致力于创新教学手段&#xff0c;为学生提供更便捷、高效的学习体验。在这个信…

c#,字段和属性的区别

c#,string test和string test{ges;set;}有什么区别 在C#中&#xff0c;string test和string test { get; set; }表达了两种不同的成员声明&#xff0c;它们在类中的作用和访问方式是不同的。 string test: 这是一个字段&#xff08;field&#xff09;声明。它声明了一个类型…

【Qt之QSequentialIterable】使用

介绍 QSequentialIterable类是一个容器在QVariant中的可遍历接口。该类允许多种方法来访问存储在QVariant中容器的元素。如果一个QVariant可以转换为QVariantList&#xff0c;那么可以从其中提取出QSequentialIterable的实例。 QList<int> intList {7, 11, 42};QVarian…

2023年11月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年11月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

08.Diffusion Model数学原理分析(上)

文章目录 Diffusion Model回顾Diffusion Model算法TrainingInference 图像生成模型的本质目标MLE vs KLVAE计算 P θ ( x ) P_\theta(x) Pθ​(x)Lower bound of log ⁡ P ( x ) \log P(x) logP(x) DDPM计算 P θ ( x ) P_\theta(x) Pθ​(x)Lower bound of log ⁡ P ( x ) \…