List(序列),Set(集合),Map(映射)部分方法
Collection:集合的顶层接口它的子体系有重复的,有唯一的,序的,无序的。
ArrayList:继承了AbstractList,底层数据结构内部是一个数组,查询和修改快,增加删除慢,线程不安全,但是效率高。
HashSet:继承了AbstractSet是一个有序的,不允许有重复的链表结构。
HashMap:继承了AbstractMap,以键和值映射的方式储存,键和值可以为空,线程异步;
package Demo.TestCollection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class CollectionDemo {
public static void main(String[] args) {
// listDemo();
// setDemo();
mapDemo();
}
public static void mapDemo(){
//创建一个map<key,value>
Map<String,String> map = new HashMap<String,String>();
//增加元素
map.put("张三", "法外狂徒");
map.put("鲁智深", "倒把垂杨柳");
map.put("阿蛮", "肌肉男");
System.out.println(map);
//查找元素key中是否存在 有返回true 没有则返回false
System.out.println(map.containsKey("张三"));
//查找元素value中是否存在 有返回true 没有则返回false
System.out.println(map.containsValue("肌肉男"));
//返回一个set对象 把元素key转移到Set中
Set<String> set = map.keySet();
for(String str : set ){
System.out.println(str+" "+map.get(str));
}
//清空set
set.clear();
Map<String,String> map2 = new HashMap<String,String>();
map2.put("张三", "法外狂徒");
map2.put("鲁智深", "倒把垂杨柳");
map2.put("阿蛮", "肌肉男");
//增加是自动判断键(key)是否存在 ,有则覆盖value,没有就添加
map2.put("阿蛮", "基佬");
System.out.println(map2);
//判断两个Map是否相同
if(map.equals(map2)){
System.out.println("两个Map一样");
}else{
System.out.println("两个Map不一样");
}
//用get来判断key元素是否存在 存在则返回他的value
System.out.println(map.get("张三"));
//返回一个哈希码
System.out.println(map.hashCode());
//删除一个指定key的 key和value元素
map.remove("张三");
//将value元素转化为一个 Collection的对象中
Collection<String> c = map.values();
System.out.println(c);
//清空collection
c.clear();
//检查map中是否有元素存在 有返回false 没有则返回true
if(map.isEmpty()){
System.out.println("map中是空的");
}else{
for(String str : set ){
System.out.println(str+" "+map.get(str));
}
}
//map中元素的个数
System.out.println(map.size());
//删除Map所有元素
map.clear();
}
public static void setDemo(){
//创建一个Set有序的并不可有重复的 加入 1,2,3,4 查询是4,3,2,1
Set<String> set = new HashSet<String>();
//增加元素 有相同的值则不会添加
set.add("name1");
set.add("name2");
set.add("name3");
set.add("name4");
set.add("name4");
//判断元素是否存在 返回一个boolean的值
System.out.println(set.contains("name2"));
//判断Set中是否空的 返回一个Boolean的值
System.out.println(set.isEmpty());
//判断是否存在 存在则删除 不存在则返回false
set.remove("name2");
//获取set集合的大小
System.out.println(set.size());
for(String str : set ){
System.out.println(str);
}
}
public static void listDemo(){
//创建一个List
List<String> list = new ArrayList<String>();
//增加元素
list.add("你好!");
list.add("Hello!");
//指定元素
list.add(2,"yes!");
list.add("嗨!");
List<String> list2 = new ArrayList<String>();
list2.add("哥们!");
list2.add("我要插队!!");
//添加一个ArrayList<>到指定的索引
list.addAll(3, list2);
for(String str :list){
System.out.println(str);
}
//截取List中2到三的元素
System.out.println(list.subList(2, 4));
//指定查询List中第2的元素
System.out.println(list.get(2));
//判断List中有没有这个元素 没有返回-1 有则返回他的索引
System.out.println(list.indexOf("嗨!"));
//删除一个指定的元素 不存在则返回false
list.remove("哥们!");
//修改一个指定索引的元素
list.set(2, "我帮你排队");
System.out.println("\t");
for(String str :list){
System.out.println(str);
}
//清空list所有元素
list.clear();
System.out.println(list);
}
}