三大常用集合

1.Set集合

在Java中,Set是一种集合类型,它是一种不允许包含重复元素的集合,每个元素在Set中是唯一的。Set接口的常用实现类有HashSet、TreeSet和LinkedHashSet。以下是关于Set集合的一些重要特点和用法:

特点:

  1. 不允许重复元素:Set中每个元素都是唯一的,如果尝试向Set中添加重复元素,则添加操作不会成功。
  2. 无序性:Set并不维护元素的添加顺序,元素的存储顺序由具体的Set实现类决定。HashSet是根据哈希算法来存储元素,没有特定的顺序;TreeSet基于元素的自然顺序或者Comparator来进行排序;LinkedHashSet保留了元素添加的顺序。
  3. 允许空元素:Set集合允许存储一个空元素(null)。

常用方法:

  1. 添加元素:使用add方法向Set中添加元素。
  2. 删除元素:使用remove方法移除Set中的元素。
  3. 判断元素是否存在:使用contains方法判断Set中是否包含某个元素。
  4. 获取Set的大小:使用size方法获取Set中元素的个数。
  5. 遍历Set:Set集合可以使用迭代器(Iterator)或者增强for循环进行遍历。

示例:

import java.util.HashSet;
import java.util.Set;public class Main {public static void main(String[] args) {Set<String> set = new HashSet<>();// 添加元素set.add("apple");set.add("orange");set.add("banana");set.add("apple"); // 添加重复元素,不会成功// 删除元素set.remove("orange");// 判断元素是否存在if(set.contains("banana")) {System.out.println("Set contains 'banana'");}// 遍历Setfor(String element : set) {System.out.println(element);}// 获取Set的大小System.out.println("Size of Set: " + set.size());}
}

在实际应用中,Set集合常用于去重、判断元素是否存在以及集合运算等场景。通过Set集合提供的特性和方法,可以方便地实现对元素的管理和操作。

Set 是 Java 集合框架中的一个接口,表示不包含重复元素的集合。Set 接口的实现类通常用于存储不重复的元素,并且不保证元素的顺序。常见的 Set 实现类包括 HashSetTreeSet 和 LinkedHashSet

1. 创建 Set 对象:

可以使用以下方法创建 Set 对象:

Set<String> hashSet = new HashSet<>();  // 使用 HashSet 创建 Set
Set<String> treeSet = new TreeSet<>();  // 使用 TreeSet 创建 Set
Set<String> linkedHashSet = new LinkedHashSet<>();  // 使用 LinkedHashSet 创建 Set

2. 常用方法:

  • add(E e):向集合中添加元素,如果元素已存在,则不添加。
  • remove(Object o):从集合中移除指定元素。
  • contains(Object o):判断集合中是否包含指定元素。
  • size():返回集合中元素的个数。
  • isEmpty():判断集合是否为空。
  • clear():清空集合中的所有元素。
  • iterator():返回用于迭代集合的迭代器。

3. 示例代码:

以下是一个示例代码,演示了如何使用 HashSet 和 TreeSet

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;public class SetExample {public static void main(String[] args) {// 使用 HashSet 创建 SetSet<String> hashSet = new HashSet<>();hashSet.add("apple");hashSet.add("banana");hashSet.add("orange");hashSet.add("banana");  // 不会重复添加System.out.println("HashSet elements: " + hashSet);// 使用 TreeSet 创建 SetSet<String> treeSet = new TreeSet<>();treeSet.add("pineapple");treeSet.add("banana");treeSet.add("orange");treeSet.add("banana");  // 不会重复添加System.out.println("TreeSet elements: " + treeSet);}
}

在上面的示例中,首先创建了一个 HashSet 和一个 TreeSet,然后向集合中添加元素。由于集合不允许重复元素,因此向 HashSet 和 TreeSet 中添加重复元素时,只会添加一次。最后打印输出了集合中的元素。通过使用 Set 接口的实现类,可以方便地管理不重复的元素集合。

2.Map集合

在Java中,Map接口表示一种将键值对映射关系存储起来的集合。Map集合中的每个元素都包含一个键和对应的值,键和值之间是一种一对一的映射关系,其中键是唯一的,值可以重复。

Map集合广泛用于保存和处理数据,在实际开发中应用非常广泛。Java中常用的Map接口的实现类有:

  1. HashMap:基于哈希表实现,可以快速查找键值对,适合存储大量数据。
  2. LinkedHashMap:在HashMap的基础上增加了按照插入顺序或访问顺序排序键值对。
  3. TreeMap:基于红黑树实现,键值对按照自然顺序或自定义比较器排序。
  4. ConcurrentHashMap:线程安全的HashMap实现,在多线程环境下性能更好。

Map集合常用的方法有:

  • put(key, value):向Map中添加键值对。
  • get(key):根据键获取对应的值。
  • containsKey(key):判断Map中是否包含指定的键。
  • containsValue(value):判断Map中是否包含指定的值。
  • remove(key):移除指定键对应的键值对。
  • size():返回Map中键值对的数量。

Map集合是常用的数据结构之一,能够快速进行键值对的查找、删除以及更新操作。在开发过程中,Map集合被广泛应用于保存配置信息、缓存数据、处理请求参数等场景。

Map集合是Java中用于存储键值对映射关系的数据结构,下面是一些Map集合的基本用法:

创建Map对象

可以使用HashMapLinkedHashMapTreeMap等Map的实现类来创建Map对象:

Map<String, Integer> map = new HashMap<>();

添加键值对

使用put(key, value)方法向Map中添加键值对:

map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);

获取值

使用get(key)方法根据键获取对应的值:

int appleCount = map.get("apple");

判断键是否存在

使用containsKey(key)方法判断Map中是否包含指定的键:

if (map.containsKey("banana")) {System.out.println("Map contains key 'banana'");
}

迭代Map

可以使用keySet()entrySet()values()等方法对Map进行迭代,获取键集、键值对集或值集:

// 遍历所有键
for (String key : map.keySet()) {int value = map.get(key);System.out.println(key + ": " + value);
}// 遍历所有键值对
for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();int value = entry.getValue();System.out.println(key + ": " + value);
}// 遍历所有值
for (int value : map.values()) {System.out.println(value);
}

删除键值对

使用remove(key)方法移除指定键对应的键值对:

map.remove("orange");

Map集合是一种非常有用的数据结构,能够方便地存储和操作键值对数据。在实际开发中,Map经常被用于保存配置信息、统计数据、缓存数据等场景。熟练掌握Map集合的用法有助于提高代码编写效率和数据处理能力。

3.List集合

List 是 Java 集合框架中的一个接口,表示有序的集合,可以包含重复元素。List 接口的常见实现类包括 ArrayListLinkedList 和 Vector

1. 创建 List 对象:

可以使用以下方法创建 List 对象:

List<String> arrayList = new ArrayList<>();  // 使用 ArrayList 创建 List
List<String> linkedList = new LinkedList<>();  // 使用 LinkedList 创建 List
List<String> vector = new Vector<>();  // 使用 Vector 创建 List

2. 常用方法:

  • add(E e):向列表尾部添加元素。
  • add(int index, E element):在指定位置插入元素。
  • get(int index):获取指定位置的元素。
  • remove(int index):移除指定位置的元素。
  • remove(Object o):移除指定元素。
  • contains(Object o):判断列表中是否包含指定元素。
  • size():返回列表的大小。
  • isEmpty():判断列表是否为空。
  • clear():清空列表中所有元素。
  • set(int index, E element):替换指定位置的元素。

3. 示例代码:

以下是一个示例代码,演示了如何使用 ArrayList 和 LinkedList

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;public class ListExample {public static void main(String[] args) {// 使用 ArrayList 创建 ListList<String> arrayList = new ArrayList<>();arrayList.add("apple");arrayList.add("banana");arrayList.add("orange");// 在指定位置插入元素arrayList.add(1, "pineapple");System.out.println("ArrayList elements: " + arrayList);// 使用 LinkedList 创建 ListList<String> linkedList = new LinkedList<>();linkedList.add("car");linkedList.add("bus");linkedList.add("bike");// 移除指定位置的元素linkedList.remove(1);System.out.println("LinkedList elements: " + linkedList);}
}

在上面的示例中,首先创建了一个 ArrayList 和一个 LinkedList,然后向列表中添加元素并插入元素。随后删除了一个元素,并打印输出了列表的元素。通过使用 List 接口的实现类,可以操作有序、可以重复的元素集合。

List 是 Java 集合框架中的一个接口,表示有序的集合,可以包含重复元素。List 接口的实现类包括 ArrayList、LinkedList 和 Vector。下面介绍 List 集合的常见用法:

1. 创建 List 对象:

可以使用以下方法创建 List 对象:

List<String> list = new ArrayList<>();  // 使用 ArrayList 创建 List
List<Integer> list = new LinkedList<>();  // 使用 LinkedList 创建 List
List<Double> list = new Vector<>();  // 使用 Vector 创建 List

2. 添加元素:

可以使用 add(E e) 方法向 List 中添加元素,可以在列表的末尾添加元素。

list.add("apple");
list.add("banana");
list.add("orange");

3. 获取元素:

可以使用 get(int index) 方法获取指定位置的元素。

String fruit = list.get(1);  // 获取第二个元素(索引从0开始)

4. 删除元素:

可以使用 remove(int index) 方法删除指定位置的元素,或者使用 remove(Object o) 方法删除指定元素。

list.remove(1);  // 删除第二个元素
list.remove("apple");  // 删除元素值为 "apple" 的元素

5. 遍历元素:

可以使用 for 循环或者迭代器遍历列表中的元素。

for(String fruit : list) {System.out.println(fruit);
}Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);
}

6. 其他常用方法:

  • size():返回列表的大小。
  • isEmpty():判断列表是否为空。
  • clear():清空列表中的所有元素。
  • indexOf(Object o):返回元素在列表中第一次出现的索引。
  • contains(Object o):判断列表中是否包含指定元素。
  • set(int index, E element):替换指定位置的元素。

示例代码:

以下是一个示例代码,演示了 List 集合的基本用法:

import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");for (String fruit : list) {System.out.println(fruit);}list.remove(1);  // 删除第二个元素System.out.println("Size of list: " + list.size());System.out.println("Is list empty? " + list.isEmpty());}
}

通过使用 List 集合,可以方便地存储有序、可以重复的元素集合,并进行常见的操作,如添加、获取、删除、遍历等。

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

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

相关文章

什么是mysql的回表操作

MySQL中的“回表”操作是指在执行查询时&#xff0c;由于索引结构的限制&#xff0c;数据库系统需要从非聚集索引&#xff08;Secondary Index&#xff09;中找到主键值&#xff0c;然后使用这些主键值回溯到聚集索引&#xff08;Clustered Index&#xff09;中获取完整的行数据…

珠江电缆,承载您梦想的每一度电

在现代社会&#xff0c;电力无处不在&#xff0c;它不仅是经济发展的动力&#xff0c;更是每个人生活中不可或缺的能量来源。而在这个电力驱动的世界里&#xff0c;有一家企业默默地承载着千家万户的梦想&#xff0c;它就是珠江电缆。 连接梦想的每一度电 珠江电缆成立于2001…

使用Java实现单元测试:JUnit教程

使用Java实现单元测试&#xff1a;JUnit教程 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在软件开发中&#xff0c;单元测试是保证代码质量和功能正确性的重要手段之一。JUnit是Java语言中最流行…

绝区零国际服下载 一键下载绝区零国际服教程

绝区零是一款米哈游倾情打造的全新都市幻想动作角色扮演游戏。在游戏中&#xff0c;我们将扮演一名绳匠&#xff0c;这是为出于各种原因需要进入危险空洞的人提供指引的专业人士。您将与独特的角色一起踏上冒险之旅&#xff0c;携手探索空洞&#xff0c;对战强大敌人&#xff0…

【状态估计】线性高斯系统的状态估计——离散时间的递归滤波

前两篇文章介绍了离散时间的批量估计、离散时间的递归平滑&#xff0c;本文着重介绍离散时间的递归滤波。 前两篇位置&#xff1a;【状态估计】线性高斯系统的状态估计——离散时间的批量估计、【状态估计】线性高斯系统的状态估计——离散时间的递归平滑。 离散时间的递归滤波…

ollama将模型永远加载在显存里

问题解析 我们在使用ollma部署大语言模型的时候,如果部署的模型尺寸较大,往往在第一次加载的时候需要花费大量的时间加载模型;等加载完成后,如果长时间不调用模型,我们会发现模型已经被释放掉了,又要重新加载,导致体验感极差. 这是为什么呢?因为在没被调用时,ollama默认在显…

Steam夏促怎么注册 Steam夏促账号注册教程

随着夏日的炙热渐渐充斥着每一个角落&#xff0c;Steam平台也赶来添热闹&#xff0c;推出了一系列让人眼前一亮的夏季促销活动。如果你也是游戏爱好者&#xff0c;我们肯定不能错过这次的steam夏促。正直本次夏日促销有着很多的游戏迎来史低和新史低&#xff0c;有各种各样的游…

20240703在飞凌OK3588-C开发板上刷Rockchip原厂的Buildroot20220811

20240703在飞凌OK3588-C开发板上刷Rockchip原厂的Buildroot20220811 2024/7/3 18:25 详细的刷机LOG&#xff1a; [BEGIN] 2024/7/3 18:18:49 rootRK3588:/# DDR Version V1.07 20220412 LPDDR4X, 2112MHz channel[0] BW16 Col10 Bk8 CS0 Row16 CS1 Row16 CS2 Die BW16 Size204…

TP8/6 更改后台入口地址admin改为myadmin 隐藏真实后台网址

原来www.xxx.com/admin 改后www.xxx.com/myadmin config/app.php // 应用映射&#xff08;自动多应用模式有效&#xff09;app_map > [admintest>admin],

JavaScript 实用技巧(二)

JavaScript 实用技巧&#xff1a;提升你的编程效率 JavaScript 是一种广泛使用和极具表现力的编程语言。为了帮助你更高效地编写代码&#xff0c;本文将介绍一些实用的 JavaScript 技巧。掌握这些技巧将有助于提高你的编程速度和代码质量。 1. 交换变量的值 不需要使用临时变…

为何同一PDF文档用不同软件打印效果不同?

通过扫描仪生成的同一PDF文档&#xff0c;同样的设置&#xff0c;为什么别的电脑打出来是白底我的打出来有灰色格子背景&#xff1f;这种情况通常是由于PDF阅读软件的不同造成的差异。 ### 可能的原因和解决方法&#xff1a; 1. **PDF阅读软件的不同**&#xff1a; - **解决方…

Vue3轻松创建交互式仪表盘

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的 Vue 仪表盘组件 应用场景介绍 仪表盘是一种交互式可视化工具&#xff0c;用于监控和分析关键指标。它广泛应用于各种行业&#xff0c;例如金融、医疗保健和制造业。 代码基本功能介绍 本…

FFmpeg 命令行 音视频格式转换

&#x1f4da;&#xff1a;FFmpeg 提供了丰富的命令行选项和功能&#xff0c;可以用来处理音视频文件、流媒体等&#xff0c;掌握命令行的使用&#xff0c;可以有效提高工作效率。 目录 一、视频转换和格式转换 &#x1f535; 将视频文件转换为另一种格式 &#x1f535; 指定…

12个惊艳的可视化大屏:解锁数据之美,洞见未来趋势

在数字化转型的浪潮中&#xff0c;可视化大屏以其独特的魅力和强大的功能&#xff0c;成为了企业展示数据、洞察趋势的重要窗口。我们将一同探索12个惊艳的可视化大屏案例&#xff0c;感受数据之美&#xff0c;洞见未来趋势。 可视化大屏&#xff0c;作为数据可视化的高级形态…

vue3绘制广东深圳地图使用echarts

<!-- 饼图 --> <template><el-card><template #header> 地级市分类图 </template><div :id"id" :class"className" :style"{ height, width }"></div></el-card> </template><script …

彻底学会Gradle插件版本和Gradle版本及对应关系

看完这篇&#xff0c;保你彻底学会Gradle插件版本和Gradle版本及对应关系&#xff0c;超详细超全的对应关系表 需要知道Gradle插件版本和Gradle版本的对应关系&#xff0c;其实就是需要知道Gradle插件版本对应所需的gradle最低版本&#xff0c;详细对应关系如下表格&#xff0…

Lua、AB包热更新总结

1.AB包热更新 &#xff08;1&#xff09;AB包是一种特定的压缩文件&#xff0c;可以放模型贴图音效等等 &#xff08;2&#xff09;Resources目录下打包时只读 无法修改&#xff1b;而AB包存储的位置是自定义的&#xff0c;能够动态更新&#xff0c;同时可以决定资源包初始的大…

0703_ARM7

练习&#xff1a; 封装exti&#xff0c;cic初始化函数 //EXTI初始化 void hal_key_exti_init(int id,int exticr,int mode){//获取偏移地址int address_offset (id%4)*8;//获取寄存器编号int re_ser (id/4)1;//printf("address_offset%d,re_ser%d\n",address_o…

Excel中按列的首行字母顺序,重新排列(VBA脚本)

排序前 要求对4列数据按照第一行abcd的顺序排列 VB脚本如下&#xff1a; 要使用这个脚本&#xff0c;请按照以下步骤操作&#xff1a; 打开Excel&#xff0c;然后按下 Alt F11 打开VBA编辑器。在VBA编辑器中&#xff0c;选择“插入” > “模块”&#xff0c;在打开的模块…

【Python机器学习】算法链与管道——构建管道

目录 1、首先&#xff0c;我们构建一个由步骤列表组成的管道对象。 2、向任何其他scikit-learn估计器一样来拟合这个管道 3、调用pipe.score 我们来看下如何使用Pipeline类来表示在使用MinMaxScaler缩放数据后&#xff0c;再训练一个SVM的工作流程&#xff08;暂时不用网格搜…