Java编程基础之Set和Map的简单使用
背景:现在各种线上视频教程、各种blog,随便搜索都能抓出一大把资料,大同小异,所以本人只是记录,相当于笔记吧,或许价值不高的原因只有自己看得懂。
1、Set集合在使用Jmeter做接口测试写数据库断言时用过。往后会将封装此类方法在JMeter里使用。今天且看代码:
package com.java.list;import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;/**/
public class SetDemo {public static void main(String[] args) {// TODO Auto-generated method stub// 创建对象,<>尖括号表示的是泛型:定义元素集合的数据类型,set是一个接口,HashSet是实现接口的类Set<String> hs = new HashSet<String>();// HashSet把重复的元素去掉了hs.add("BMW");hs.add("Honda");hs.add("Benz");hs.add("Honda1");hs.add("Benz2");System.out.println("原集合存取顺序:" + hs);// 迭代器,遍历取值Iterator<String> ite = hs.iterator();while (ite.hasNext()) {System.out.println(ite.next());}// for (String str : hs) {// // HashSet 不保证元素存取顺序一样,所以熟读比较快// System.out.println("取出顺序:" + str);// }// LinkedHashSet保证有序Set<String> ls = new LinkedHashSet<String>();// hashset把重复的元素去掉了ls.add("BMW");ls.add("Honda");ls.add("Benz");ls.add("Honda");for (String str2 : ls) {// hashset 不保证元素存取顺序一样,所以熟读比较快System.out.println("linkedhashset的顺序" + str2);}// TreeSet 以自然排序的方法给元素排序,没有hashset快Set<String> ts = new TreeSet<String>();// hashset把重复的元素去掉了ts.add("BMW");ts.add("Honda");ts.add("Benz");ts.add("Honda");for (String str1 : ts) {// hashset 不保证元素存取顺序一样,所以熟读比较快System.out.println("treeset的顺序" + str1);}System.out.println(ts);List<String> as = new ArrayList<String>();as.add("hello");as.add("hello");// System.out.println(as);}
}
2、Map代码里有迭代器的使用及其他遍历取值方式:
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;public class DiffMapDemo {public static void main(String[] args) {// map接口创建应用实现对象Map<Integer, String> hashmap = new HashMap<Integer, String>();// 键值对的增加元素hashmap.put(1, "BMW");hashmap.put(6, "Audi");hashmap.put(2, "Honda");// 输出map的元素列表System.out.println("输出hashmap的元素,默认自然排序取出"+hashmap);// get()方法获取key的值,如果元素不存在的key,get会返回nullString value1 = hashmap.get(1);System.out.println("get()方法通过key获取值:"+value1);// 第一种遍历取值方式:推荐,尤其是容量大时System.out.println("\n通过Map.entrySet遍历key和value");for (Map.Entry<Integer, String> entry : hashmap.entrySet()) {int key = entry.getKey();String value = entry.getValue();System.out.println("键:" + key + " 值:" + value);}// 第二种方式取值:System.out.println("\n通过Map.keySet遍历key和value:");for (Integer key : hashmap.keySet()) {String value = hashmap.get(key);System.out.println("键:" + key + " 值:" + value);}// 第三种System.out.println("\n通过Map.values()遍历所有的value,但不能遍历key");for (String v : hashmap.values()) {System.out.println("value= " + v);}// 第四种System.out.println("\n通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<Integer, String>> it = hashmap.entrySet().iterator();while (it.hasNext()) {Map.Entry<Integer, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());}// 有序,保证怎么存,取就是怎么样的顺序Map<Integer, String> linkedhashmap = new LinkedHashMap<Integer, String>();linkedhashmap.put(1, "BMW");linkedhashmap.put(6, "Audi");linkedhashmap.put(2, "Honda");System.out.println("\nlinkedhashmap的顺序:" + linkedhashmap);// 保证自然排序,Map<Integer, String> treemap = new TreeMap<Integer, String>();treemap.put(1, "BMW");treemap.put(6, "Audi");treemap.put(2, "Honda");System.out.println("\ntreemap的顺序:" + treemap);}
}
3、两者具体有什么区别,在什么场景下使用,需要了解底层实现原理,以及自己不断的使用经验总结,而不是看看别人的代码就能明白的,还需要自己多动脑勤动手。
Java编程基础之Set和Map的简单使用相关推荐
- Java大神推荐,java编程基础必备(必看)
在没有以前的操作习惯的错误情况下,反而容易接受新知识,所以不要因为自己对java一无所知而自卑,相反,这是菜鸟们的优势,但是如何才能从一个菜鸟历练成大神呢,当然是需要学习了,不学习就想成为大神,就是在 ...
- 第二章java编程基础测试题_Java编程基础测试题分享
单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; //float f=1.1f C. double d=34.4; D. byte ...
- java编程一般类抽象类的定义,Java编程基础抽象类
本文主要是讲述Java编程基础-抽象类,更多Java技术知识,请登陆疯狂软件教育官网. 抽象类: 抽象:不具体,看不明白关键字abstract 抽象类的特点: 1.抽象方法只能定义在抽象类中,抽象类和 ...
- 《Java程序员面试秘笈》—— 第1章 Java编程基础
本节书摘来异步社区<Java程序员面试秘笈>一书中的第1章,作者:常建功,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第1章 Java编程基础 通过考察Jav ...
- Java编程基础 - 泛型
Java编程基础 - 泛型 [导读] . 什么是泛型 一般传统而言,泛型允许程序员在强类型语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型. 编程技术发展至今很多语言,尤其是强 ...
- 实验一 Java编程基础
面向对象--Java实验报告 实验一:Java基础编程 实验一 Java编程基础 <center> <strong>姓名:</strong> <u>XX ...
- Java实验01 Java编程基础(猜数字游戏、随机点名器)
实验一 Java编程基础 实验1-1 随机点名器 一.实验描述 1. 任务描述 编写一个随机点名的程序,使其能够在全班同学中随机点中某一名同学的名字.随机点名器具备3个功能,包括存储全班同学姓名.总览 ...
- Java编程基础(入门)
Java编程基础 Java概述 Java是一种功能强大的面向对象的编程语言,它不仅吸收了C++语言的各种优点,还摈弃了C++中难以理解的多继承.指针等概念 Java开发环境搭建: 详情见:JDK和Ec ...
- java中的常用名词,Java编程基础常见英语词汇
Java编程基础常见英语词汇 Java编程基础中常见英语的词汇有哪些呢?这些都是学Java编程需要运用到的,下面内容由小编为大家介绍Java编程基础常见英语词汇,供大家参考! Java编程基础常见英语 ...
最新文章
- 揭秘:深度网络背后的数学奥秘
- android短信照片换ios9,iOS9不越狱恢复短信和照片方法说明
- pytorch代码阅读、代码学习
- Android:安卓虚拟机(Dalvik ART)学习
- C语言sar图像几何校正,SAR图像几何校正方法与流程
- php 阿里短信接口
- 黄山学院计算机科学与技术怎么样,黄山学院怎么样?黄山学院点评及最新评价情况...
- dede自动采集自动伪原创完美版插件 元旦优惠活动
- linux操作系统是什么,操作系统概述
- PMP认证考试答题应试技巧
- 2021年危险化学品生产单位安全生产管理人员考试题及危险化学品生产单位安全生产管理人员最新解析
- 学科语文方面的论文怎么选题?
- 回归损失函数:Log-Cosh Loss
- 20140228老沙的感觉
- Java awaitUninterruptibly用法
- 怎么将图片内容转换成文字?这两种方法可以轻松实现
- 字节与字符串之间的转化
- 上交所逐笔委托_[转载]上交所、深交所市价委托种类及含义
- linux-安装及管理程序(一) rpm源安装
- 【论文阅读】GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition