版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011466469/article/details/88850525
背景:现在各种线上视频教程、各种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会返回null
String 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、有什么区别需要自己不断总结,而不是看看别人的代码就能明白了,还需要多使用。