有段时间没写java代码,竟然有些生疏,整理。
1、HashMap操作
Map<String, String> map = new HashMap();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
// 遍历map的第一种方式
Set<Map.Entry<String, String>> entry = map.entrySet();
Iterator<Map.Entry<String, String>> ite = entry.iterator();
while (ite.hasNext()) {
Map.Entry<String, String> en = ite.next();
System.out.println(en.getKey() + " --> " + en.getValue());
}
// 遍历map的第二种方式
for (Map.Entry<String, String> en : map.entrySet()) {
System.out.println(en.getKey() + " --> " + en.getValue());
}
// 获得所有key的集合
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator(); // 获得key的迭代器
while (it.hasNext()) {
String key = it.next(); // 迭代器是key的迭代器
}
// 获得所有的值values-->返回值为List
for (String value : map.values()) {
System.out.println(value);
}
// 该方法不正确,会报错
// ArrayList<String> ls= (ArrayList<String>) map.values();
// 如下正解
List<String> ls = new ArrayList<String>(map.values());
//常用方法
System.out.println(map.containsKey("1"));//是否包含键
System.out.println(map.containsValue("a"));//是否包含值
Map<String, String> map2 = new HashMap(map);/2、
2、将一个set转化为List的两种方式
//构造一个set
Set<String> set=new HashSet<>();
set.add("z");
set.add("z");
set.add("a");
set.add("f");
//方法一
List<String> ll=new ArrayList<>();
if(set!=null && !set.isEmpty()) {
for(Iterator<String> iterator=set.iterator();iterator.hasNext();) {
String data=iterator.next();
if(data!=null) {
ll.add(data);
}
}
}
//方法二:将一个set转为List
List<String> ls=new ArrayList<>(set);
System.out.println(ls);
3、List排序与二分查找
String aggAlgo = "SRC,DST;RULE group";
//数组转集合
List<String> ls = new ArrayList<>(Arrays.asList(aggAlgo.toLowerCase().split(",|;| ")));// split的切割可以根据多个条件进行切割
//集合->数组
//String arr[] = ls.toArray(new String[ls.size()]);
Collections.sort(ls);// 自然顺序排序
//Collections.reverse(ls); //降序
int num = Collections.binarySearch(ls, "rule");// 二分查找
List<String> ls2 = new ArrayList<>(ls);// 将list赋值为另一个list
4、List去重
方法一:使用stream流
List lst1=ls.stream().distinct().collect(Collectors.toList());
方法二:使用利用set
List lst2=new ArrayList(new HashSet(ls));
用到了List的构造方法: List<String> ls=new ArrayList<>(set);
5、获得两个List中差集
// 集合去重
List<String> ls1 = new ArrayList<>();
ls1.add("a");
ls1.add("b");
ls1.add("c");
List<String> ls2 = new ArrayList<>();
ls2.add("a");
ls2.add("b");
ls2.add("c");
ls2.add("d");
// 是否存在ls1完全包含ls2的情况
boolean exist = ls1.containsAll(ls2);
if (!exist) {
ls2.removeAll(ls1);
}
System.out.println(ls1);//a b c
System.out.println(ls2);// d