知识点汇总
map:双列数据存储key-value数据
①map中key无序不可重复使用set存储所有的key,
②value无序可重复,使用collection存储
一个键值对构成一个Entry对象
HashMap:(map的主要实现类)线程不安全的可存储null,LinkedHashMap:按照添加顺序。
TreeMap:按添加的key-value对进行排序,按key去排序,Hashtable:线程安全的不可存储null。
properties常用来处理配置文件。
代码示例:
public class MapTest {
public static void main(String[] args) {
//map中的常用方法
Map map=new HashMap();
//put 添加数据putAll(Map m)
map.put("a",1);
map.put("b",2);
map.put("c",2);
map.put("d",3);
System.out.println(map);
//remove按照指定的key移除指定键值对
map.remove("c");
System.out.println(map);
//clear()清空当前Map中的所有数据
//map.clear();
System.out.println(map.size());
System.out.println(map.isEmpty());
//get()查询指定key的对应value
System.out.println(map.get("a"));
//containsKey()判断是否包含指定的key
System.out.println(map.containsKey("b"));
//containsValue()判断是否包含指定的value
System.out.println(map.containsValue(3));
//equals(Object obj)判断当前Map和参数对象是否相等
/*
* 遍历Map中的数据元视图操作的方法:
* Set keySet():返回所有key构成的Set集合
* Collection values():返回value构成的Collection集合
* Set entrySet():返回key-value对构成的Set集合
* */
Map map1=new HashMap();
map1.put("q",11);
map1.put("w",22);
map1.put(99,33);
map1.put("r",44);
map1.put("t",55);
//遍历所有的key集
Set set=map1.keySet();
Iterator iterator=set.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next()+"\t");
}
//遍历所有的value集
Collection collection=map1.values();
for(Object object:collection){
System.out.println(object);
}
//遍历所有的key-value
Set set1=map1.entrySet();
Iterator iterator1=set1.iterator();
while (iterator1.hasNext()){
Object obj=iterator1.next();
Map.Entry entry=(Map.Entry)obj;
System.out.println(entry.getKey()+"--->"+entry.getValue());
}
/*
* TreeMap中添加数据要求key必须是同一类按照key进行自然排序和定制排序
* */
TreeMap treeMap=new TreeMap();
Man man1=new Man("Roy",12);
Man man2=new Man("Hew",12);
Man man3=new Man("Jerry",12);
treeMap.put(man1,55);
treeMap.put(man2,66);
treeMap.put(man3,77);
//遍历
Set set2=treeMap.entrySet();
Iterator iterator2=set2.iterator();
while (iterator2.hasNext()){
Object object= iterator2.next();
Map.Entry entry=(Map.Entry)object;
System.out.println(entry.getKey()+"-------"+entry.getValue());
}
//定制排序
TreeMap treeMap1=new TreeMap(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof Man && o2 instanceof Man){
Man m1=(Man)o1;
Man m2=(Man)o2;
//按照年龄排序
return Integer.compare(m1.getAge(),m2.getAge());
}
throw new RuntimeException("类型不一致");
}
});
}
}
创建Man.java
public class Man implements Comparable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man(String name, int age) {
this.name = name;
this.age = age;
}
public Man() {
}
/**
*@ClassName Man
*@Description 重写的compareTo方法用于在TreeMap中进行排序输出
*@Param [o]
*@Return int
*@Date 2020/2/7 18:56
*@Author Roy
*/
@Override
public int compareTo(Object o) {
if(o instanceof Man){
Man man=(Man)o;
int com=this.name.compareTo(man.name);
if(com!=0){
return com;
}else {
return Integer.compare(this.age,man.age);
}
}
throw new RuntimeException("输入的类型不符合");
}
@Override
public String toString() {
return "Man{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Collections:操作Collection、Map的工具类
代码示例:
public class CollectionsTe {
public static void main(String[] args) {
List list=new ArrayList();
list.add(12);
list.add(67);
list.add(112);
list.add(-2);
list.add(92);
//reverse()反转list
Collections.reverse(list);
//shuffle()随机排序
Collections.shuffle(list);
//sort()自然排序
Collections.sort(list);
//swap()交换指定索引处的值
Collections.swap(list,2,3);
//frequency()特定值出现的频率
Collections.frequency(list,92);
//copy
List dest=Arrays.asList(new Object[list.size()]);
Collections.copy(dest,list);
//构造线程安全的List
List list1=Collections.synchronizedList(list);
}
}
来源:CSDN
作者:Roy-sky
链接:https://blog.csdn.net/weixin_37719485/article/details/104214149