首页 > 其他分享 >Map集合

Map集合

时间:2023-09-09 13:01:56浏览次数:28  
标签:Map Stu System put println 集合 new out

一,Map集合

1,概述

-将键映射到值的对象。 Map不能包含重复的键; 每个键可以映射到最多一个值。

2,特点

-存储元素的时候是按照 键值对 的方式来存储的

-也称之为双列集合。

-Map集合的键,可以为空, 唯一 , 一个键对应一个值,值可重复,包括null

3,Map和Collecion的区别

-Map集合存储元素都是成对出现的 夫妻对

Map的键唯一 ,值是可以重复的

是双列集合的顶层接口

所有的数据结构只直接针对键 ,和值无关

-Collecion集合存储元素都是单独出现的 光棍

是单列集合的顶层接口

List 可重复

Set 唯一

所有的数据结构直接针对元素

4,成员方法

-添加

V put(K key, V value)

将指定的值与该映射中的指定键相关联(可选操作)。

注意:键是第一次出现,添加,返回null

键如果是第二次出现,替换,返回被替换掉的元素

void putAll(Map m)

将指定地图的所有映射复制到此映射(可选操作)。

package com.momo.demo;

import java.util.HashMap;

import java.util.Map;

/*

* Map添加功能

* */

public class Demo1 {

public static void main(String[] args) {

m = new HashMap<>();

System.out.println(m.put(1, "aaa"));

System.out.println(m);

System.out.println(m.put(1, "bbb"));

System.out.println(m.put(3, "ccc"));

System.out.println(m.put(4, "ddd"));

System.out.println(m);*/

m = new HashMap<>();

m.put("贾乃亮","李小璐");

m.put("文章","马伊利");

System.out.println(m.put("马蓉", "宝强"));

System.out.println(m.put("马蓉", "宋吉吉"));

System.out.println(m);

Map mm = new HashMap();

mm.putAll(m);

System.out.println(mm);

}

}

-删除

void clear()

从该地图中删除所有的映射(可选操作)。

V remove(Object key)

如果存在(从可选的操作),从该地图中删除一个键的映射。

boolean remove(Object key, Object value)

仅当指定的密钥当前映射到指定的值时删除该条目。

package com.momo.demo;

import java.util.HashMap;

import java.util.Map;

/*

* Map的删除功能

* */

public class Demo2 {

public static void main(String[] args) {

m = new HashMap<>();

m.put(1, "aaa");

m.put(2, "bbb");

m.put(3, "ccc");

m.put(4, "ddd");

System.out.println(m);

// System.out.println(m.remove(1));

// System.out.println(m.remove(8));

// m.clear();

System.out.println(m.remove(1, "aaa"));

System.out.println(m);

}

}

-判断

boolean containsKey(Object key)

如果此映射包含指定键的映射,则返回 true 。

boolean containsValue(Object value)

如果此地图将一个或多个键映射到指定的值,则返回 true 。

boolean equals(Object o)

将指定的对象与此映射进行比较以获得相等性。

boolean isEmpty()

如果此地图不包含键值映射,则返回 true 。

package com.momo.demo;

import java.util.HashMap;

import java.util.Map;

/*

* Map判断功能

* */

public class Demo3 {

public static void main(String[] args) {

m = new HashMap<>();

m.put(1, "aaa");

m.put(2, "bbb");

m.put(3, "ccc");

m.put(4, "ddd");

System.out.println(m);

/* System.out.println(m.containsKey(1));

System.out.println(m.containsKey(8));

System.out.println(m.containsValue("aaa"));

System.out.println(m.containsValue("a"));

System.out.println(m.isEmpty());*/

m2 = new HashMap<>();

m2.put(1, "aaa");

m2.put(2, "a");

m2.put(3, "ccc");

m2.put(4, "ddd");

System.out.println(m.equals(m2));

}

}

-替换

V replace(K key, V value)

只有当目标映射到某个值时,才能替换指定键的条目。

boolean replace(K key, V oldValue, V newValue)

仅当当前映射到指定的值时,才能替换指定键的条目。

package com.momo.demo;

import java.util.HashMap;

import java.util.Map;

/*

* Map替换功能

* */

public class Demo4 {

public static void main(String[] args) {

m = new HashMap<>();

m.put(1, "aaa");

m.put(2, "bbb");

m.put(3, "ccc");

m.put(4, "ddd");

System.out.println(m);

/* System.out.println(m.replace(1, "bbb"));

System.out.println(m.replace(11, "bbb"));*/

// System.out.println(m.replace(1, "aaa", "abc"));

System.out.println(m.replace(1, "ccc", "abc"));

System.out.println(m);

}

}

-获取

Set> entrySet()

返回此地图中包含的映射的Set视图。

V get(Object key)

返回到指定键所映射的值,或 null如果此映射包含该键的映射。

V getOrDefault(Object key, V defaultValue)

返回到指定键所映射的值,或 defaultValue如果此映射包含该键的映射。

Set keySet()

返回此地图中包含的键的Set视图。

int size()

返回此地图中键值映射的数量。

Collection values()

返回此地图中包含的值的Collection视图。

package com.momo.demo;

import java.util.Collection;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

/*

* Map获取功能

* */

public class Demo5 {

public static void main(String[] args) {

m = new HashMap<>();

m.put(1, "aaa");

m.put(2, "bbb");

m.put(3, "ccc");

m.put(4, "ddd");

System.out.println(m);

/* System.out.println(m.get(1));

System.out.println(m.get(22));*/

// System.out.println(m.size());

/* System.out.println(m.getOrDefault(1,"momo"));

System.out.println(m.getOrDefault(123,"momo"));

*/

keys = m.keySet();

for (Integer key : keys) {

String value = m.get(key);

System.out.println(key+"---"+value);

}*/

values = m.values();

for (String value : values) {

System.out.println(value);

}*/

/*

* Map.Entry 是Map集合中存储的 键值对 的对象

* K getKey()

返回与此条目相对应的键。

V getValue()

返回与此条目相对应的值。

* */

> entries = m.entrySet();

entry : entries) {

Integer key = entry.getKey();

String value = entry.getValue();

System.out.println(key+"--"+value);

}

}

}

5,Map集合的遍历方式

-keySet()+get()

先获取所有键集合,根据键获取值

-entrySet()

先获取所有键值对对象,在获取键和值

6,练习

-Map

-Map

-Map

package com.momo.demo;

import com.momo.po.Stu;

import com.momo.po.Tea;

import java.util.HashSet;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Set;

/*

* Map集合键都是唯一的 ,但是我们这个案例,没有唯一

* 因为put方法底层依赖hashCode和equals方法

* 自定义对象没有重写这2个方法,默认比较的是地址值,所以成员变量一样的对象也存了多次(但是他们地址值不一样啊)

* 而我们一般认为成员变量都一样的时候,就是同一个对象,只存一个

* 注意:自定义对象作为键的时候,要重写这2个方法

* */

public class Demo15 {

public static void main(String[] args) {

lm = new LinkedHashMap<>();

lm.put(new Tea("西施",20),"kd20090501");

lm.put(new Tea("王昭君",21),"kd20090502");

lm.put(new Tea("貂蝉",26),"kd20090503");

lm.put(new Tea("杨玉环",22),"kd20090504");

lm.put(new Tea("王昭君",21),"kd20090502");

lm.put(new Tea("貂蝉",26),"kd20090503");

keys = lm.keySet();

for (Tea key : keys) {

String s = lm.get(key);

System.out.println(key.getName()+"--"+key.getAge()+"--"+s);

}*/

> entries = lm.entrySet();

entry : entries) {

Tea t = entry.getKey();

String value = entry.getValue();

System.out.println(t.getName()+"--"+t.getAge()+"--"+value);

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import com.momo.po.Tea;

import java.util.HashSet;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Set;

public class Demo14 {

public static void main(String[] args) {

lm = new LinkedHashMap<>();

lm.put("kd20090501",new Tea("西施",20));

lm.put("kd20090502",new Tea("王昭君",21));

lm.put("kd20090503",new Tea("貂蝉",26));

lm.put("kd20090504",new Tea("杨玉环",22));

keys = lm.keySet();

for (String key : keys) {

Tea t = lm.get(key);

System.out.println(key+"--"+t.getName()+"--"+t.getAge());

}*/

> entries = lm.entrySet();

entry : entries) {

String key = entry.getKey();

Tea t = entry.getValue();

System.out.println(key+"--"+t.getName()+"--"+t.getAge());

}

}

}

package com.momo.demo;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

public class Demo13 {

public static void main(String[] args) {

hm = new HashMap<>();

hm.put("宝强","马蓉");

hm.put("文章","马伊利");

hm.put("贾乃亮","李小璐");

/*

keys = hm.keySet();

for (String key : keys) {

String valeu = hm.get(key);

System.out.println(key+"---"+valeu);

}*/

> entries = hm.entrySet();

entry : entries) {

String key = entry.getKey();

String value = entry.getValue();

System.out.println(key+",,"+value);

}

}

}

二,HashMap

1,概述

-基于哈希表的实现的Map接口。

-并允许null的值和null键。

- HashMap类大致相当于Hashtable ,除了它是不同步的,并允许null

-这个类不能保证Map的顺序

2,特点

-键唯一,无序,允许为空,线程不安全

3,构造方法

HashMap()

构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。

HashMap(int initialCapacity)

构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。

HashMap(Map m)

构造一个新的 HashMap与指定的相同的映射 Map 。

4,成员方法

-都是讲过的

5,练习

-HashMap

-HashMap

-HashMap

三,LinkedHashMap

1,概述

-哈希表和链表实现的Map接口,具有可预测的迭代次序。

这种实现不同于HashMap,它维持于所有条目的运行双向链表。

此链接列表定义迭代排序,通常是将键插入到地图(插入顺序 )中的顺序 。

2,特点

-键唯一,有序,允许为空,线程不安全

3,构造方法

LinkedHashMap()

构造具有默认初始容量(16)和负载因子(0.75)的空插入订购 LinkedHashMap实例。

LinkedHashMap(int initialCapacity)

构造具有指定初始容量和默认负载因子(0.75)的空插入订购 LinkedHashMap实例。

LinkedHashMap(Map m)

构造具有与指定地图相同映射的插入序列 LinkedHashMap实例。

4,成员方法

-都是讲过的

5,练习

-LinkedHashMap

-LinkedHashMap

-LinkedHashMap

package com.momo.demo;

import java.util.HashMap;

import java.util.LinkedHashMap;

import java.util.Map;

public class Demo6 {

public static void main(String[] args) {

m = new LinkedHashMap<>();

m.put(3, "ccc");

m.put(4, "ddd");

m.put(1, "aaa");

m.put(2, "bbb");

m.put(3, "ccc");

m.put(4, "ddd");

System.out.println(m);

}

}

四, TreeMap

1,概述

-一个红黑树基于NavigableMap实现。

该地图是根据排序natural ordering其密钥,

或通过Comparator在地图创建时提供,这取决于所使用的构造方法。

2,特点

-可排序:自然排序,比较器排序(取决于构造方法)

-键唯一,不能为空

package com.momo.demo;

import java.util.LinkedHashMap;

import java.util.TreeMap;

public class Demo7 {

public static void main(String[] args) {

//无参构造, 自然排序

m = new TreeMap<>();

m.put(3, null);

m.put(4, null);

m.put(1, "aaa");

m.put(2, "bbb");

m.put(null, "ccc");

m.put(4, null);

System.out.println(m);

}

}

3,构造方法

TreeMap()

使用其键的自然排序构造一个新的空树状图。

TreeMap(Comparator comparator)

构造一个新的,空的树图,按照给定的比较器排序。

TreeMap(Map m)

构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的 自然顺序进行排序 。

4,成员方法(虽然有特有方法,但是不难,用的也不多)

Map.Entry ceilingEntry(K key)

返回与大于或等于给定键的最小键相关联的键值映射,如果没有此键,则 null 。

K ceilingKey(K key)

返回大于或等于给定键的 null键,如果没有此键,则返回 null 。

Map.Entry firstEntry()

返回与该地图中的最小键相关联的键值映射,如果地图为空,则返回 null 。

K firstKey()

返回此地图中当前的第一个(最低)键。

Map.Entry floorEntry(K key)

返回与小于或等于给定键的最大键相关联的键值映射,如果没有此键,则 null 。

K floorKey(K key)

返回小于或等于给定键的最大键,如果没有这样的键,则返回 null 。

Map.Entry higherEntry(K key)

返回与最小密钥相关联的密钥值映射严格大于给定密钥,如果没有这样的密钥则 null 。

K higherKey(K key)

返回严格大于给定键的最小键,如果没有这样的键,则返回 null 。

Map.Entry lastEntry()

返回与该地图中最大关键字关联的键值映射,如果地图为空,则返回 null 。

K lastKey()

返回当前在此地图中的最后(最高)键。

Map.Entry lowerEntry(K key)

返回与最大密钥相关联的密钥值映射严格小于给定密钥,如果没有这样的密钥,则 null 。

K lowerKey(K key)

返回严格小于给定键的最大键,如果没有这样的键,则返回 null 。

Map.Entry pollFirstEntry()

删除并返回与该地图中的最小键相关联的键值映射,如果地图为空,则返回 null 。

Map.Entry pollLastEntry()

删除并返回与该地图中最大密钥相关联的键值映射,如果地图为空,则返回 null 。

SortedMap subMap(K fromKey, K toKey)

返回此地图部分的视图,其关键字范围从 fromKey (含)到 toKey ,独占。

package com.momo.demo;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.SortedMap;

import java.util.TreeMap;

public class Demo7 {

public static void main(String[] args) {

//无参构造, 自然排序

m = new TreeMap<>();

m.put(3, null);

m.put(4, null);

m.put(1, "aaa");

m.put(2, "bbb");

// m.put(null, "ccc");

m.put(6, "hah");

System.out.println(m);

entry = m.ceilingEntry(5);

entry = m.floorEntry(5);

System.out.println(entry);*/

sm = m.subMap(1, 3);

System.out.println(m);

System.out.println(sm);

}

}

5,练习

-TreeMap

-TreeMap

package com.momo.demo;

import java.util.Map;

import java.util.Set;

import java.util.TreeMap;

import java.util.TreeSet;

public class Demo16 {

public static void main(String[] args) {

ts = new TreeMap<>();

ts.put("baoqiang","marong");

ts.put("nailiang","xiaolu");

ts.put("wenzhang","yili");

ts.put("momo","xiaolongnv");

keys = ts.keySet();

for (String key : keys) {

String value = ts.get(key);

System.out.println(key+"--"+value);

}

System.out.println("-------------------");

> entries = ts.entrySet();

entry : entries) {

System.out.println(entry.getKey()+"--"+entry.getValue());

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import java.util.Map;

import java.util.Set;

import java.util.TreeMap;

import java.util.TreeSet;

public class Demo17 {

public static void main(String[] args) {

ts = new TreeMap<>();

ts.put("baoqiang",new Stu(1,"baoqiang",35));

ts.put("nailiang",new Stu(2,"nailiang",36));

ts.put("wenzhang",new Stu(3,"wenzhang",38));

ts.put("momo",new Stu(4,"momo",18));

keys = ts.keySet();

for (String key : keys) {

Stu stu = ts.get(key);

System.out.println(key+"--"+stu);

}

System.out.println("-------------------");

> entries = ts.entrySet();

entry : entries) {

System.out.println(entry.getKey()+"--"+entry.getValue());

}

}

}

-自定义对象 作为键,进行自然排序,比较器排序


package com.momo.demo;

import com.momo.po.Stu;

import java.util.*;

public class Demo18 {

public static void main(String[] args) {

//自然排序

ts = new TreeMap<>();

//比较器排序

() {

@Override

public int compare(Stu o1, Stu o2) {

int i = o1.getId()-o2.getId();

return i;

}

});

ts.put(new Stu(1,"baoqiang",35),"beilvle");

ts.put(new Stu(2,"nailiang",36),"pituile");

ts.put(new Stu(3,"wenzhang",38),"yaodi");

ts.put(new Stu(4,"momo",18),"shuaige");

keys = ts.keySet();

for (Stu key : keys) {

String s = ts.get(key);

System.out.println(key+"--"+s);

}

System.out.println("-------------------");

> entries = ts.entrySet();

entry : entries) {

System.out.println(entry.getKey()+"--"+entry.getValue());

}

}

}

package com.momo.po;

public class Stu implements Comparable{

private int id;

private String name;

private int age;

public Stu() {

}

public Stu(int id, String name, int age) {

this.id = id;

this.name = name;

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

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;

}

@Override

public String toString() {

return "Stu{" +

"id=" + id +

", name='" + name + '\'' +

", age=" + age +

'}';

}

@Override

public int compareTo(Stu o) {

int i = o.id-this.id;

int i2 = i==0?this.name.compareTo(o.name):i;

int i3 = i2==0?this.age-o.age:i2;

return i3;

}

}

package com.momo.demo;

import com.momo.po.Stu;

import java.util.*;

public class Demo19 {

public static void main(String[] args) {

//自然排序

ts = new TreeMap<>();

//比较器排序

() {

@Override

public int compare(Stu o1, Stu o2) {

int i = o1.getId()-o2.getId();

return i;

}

});

ts.put(new Stu(1,"baoqiang",35),new Stu(11,"aaa",12));

ts.put(new Stu(2,"nailiang",36),new Stu(22,"aaa",12));

ts.put(new Stu(3,"wenzhang",38),new Stu(33,"aaa",12));

ts.put(new Stu(4,"momo",18),new Stu(666,"田美",19));

keys = ts.keySet();

for (Stu key : keys) {

Stu s = ts.get(key);

System.out.println(key+"--"+s);

}

System.out.println("-------------------");

> entries = ts.entrySet();

entry : entries) {

System.out.println(entry.getKey()+"--"+entry.getValue());

}

}

}

6,Map集合练习

-"sdlfkjsfljsdlfjksdfljksed" 获取字符串中每一个字符出现的次数

结果格式: a(5)b(6)0(8)...

-集合嵌套遍历

单列集合和双列集合相互嵌套的遍历

package com.momo.demo;

import com.momo.po.Stu;

import java.util.Set;

import java.util.TreeMap;

/*

* qiming

* xianzigongsi

* java

* 学生。。。

* anquan

* 学生。。。

* beijinggongsi

* java

* 学生。。。

* anquan

* 学生。。。

* xianyangzigongsi

* java

* 学生。。。

* anquan

* 学生。。。

* */

public class Demo23 {

public static void main(String[] args) {

> xian = new TreeMap<>();

{

java = new TreeMap<>();

java.put("kd101", new Stu(1, "aaa", 11));

java.put("kd102", new Stu(2, "bbb", 12));

java.put("kd103", new Stu(3, "ccc", 13));

java.put("kd104", new Stu(4, "ddd", 11));

python = new TreeMap<>();

python.put("yd101", new Stu(1, "momo", 11));

python.put("yd102", new Stu(2, "xiaobao", 12));

python.put("yd103", new Stu(3, "xiaolong", 13));

security = new TreeMap<>();

security.put("an101", new Stu(1, "danqing", 11));

security.put("an102", new Stu(2, "ruichang", 12));

security.put("an103", new Stu(3, "zhangxin", 13));

xian.put("java", java);

xian.put("python", python);

xian.put("security", security);

}

> beijing = new TreeMap<>();

{

java = new TreeMap<>();

java.put("kd101", new Stu(1, "aaa", 11));

java.put("kd102", new Stu(2, "bbb", 12));

java.put("kd103", new Stu(3, "ccc", 13));

java.put("kd104", new Stu(4, "ddd", 11));

python = new TreeMap<>();

python.put("yd101", new Stu(1, "momo", 11));

python.put("yd102", new Stu(2, "xiaobao", 12));

python.put("yd103", new Stu(3, "xiaolong", 13));

security = new TreeMap<>();

security.put("an101", new Stu(1, "danqing", 11));

security.put("an102", new Stu(2, "ruichang", 12));

security.put("an103", new Stu(3, "zhangxin", 13));

beijing.put("java", java);

beijing.put("python", python);

beijing.put("security", security);

}

>> qiming = new TreeMap<>();

qiming.put("xian",xian);

qiming.put("beijing",beijing);

qmkeys = qiming.keySet();

System.out.println("qiming");

for (String qmkey : qmkeys) {

System.out.println(qmkey);

> xiaoqus = qiming.get(qmkey);

xiaoqukeys = xiaoqus.keySet();

for (String xiaoqukey : xiaoqukeys) {

System.out.println("\t"+xiaoqukey);

banjikeys = xiaoqus.get(xiaoqukey);

banji = banjikeys.keySet();

for (String s : banji) {

Stu stu = banjikeys.get(s);

System.out.println("\t"+"\t"+s+"---"+stu.getName()+"--"+stu.getAge());

}

}

System.out.println("---------------");

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import java.util.Map;

import java.util.Set;

import java.util.TreeMap;

public class Demo22 {

public static void main(String[] args) {

> qiming = new TreeMap<>();

java = new TreeMap<>();

java.put("kd101",new Stu(1,"aaa",11));

java.put("kd102",new Stu(2,"bbb",12));

java.put("kd103",new Stu(3,"ccc",13));

java.put("kd104",new Stu(4,"ddd",11));

python = new TreeMap<>();

python.put("yd101",new Stu(1,"momo",11));

python.put("yd102",new Stu(2,"xiaobao",12));

python.put("yd103",new Stu(3,"xiaolong",13));

security = new TreeMap<>();

security.put("an101",new Stu(1,"danqing",11));

security.put("an102",new Stu(2,"ruichang",12));

security.put("an103",new Stu(3,"zhangxin",13));

qiming.put("java",java);

qiming.put("python",python);

qiming.put("security",security);

keys = qiming.keySet();

for (String key : keys) {

tm = qiming.get(key);

xuehaos = tm.keySet();

System.out.println(key);

for (String xuehao : xuehaos) {

Stu stu = tm.get(xuehao);

System.out.println("\t" + xuehao + "--" + stu.getName() + "--" + stu.getAge());

}

}*/

>> entries = qiming.entrySet();

> entry : entries) {

String key = entry.getKey();

System.out.println(key);

tm = entry.getValue();

> entries1 = tm.entrySet();

entry1 : entries1) {

String key1 = entry1.getKey();

Stu sru = entry1.getValue();

System.out.println("\t"+key1+"--"+sru.getName());

}

System.out.println("---------------------------------");

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import java.util.*;

public class Demo21 {

public static void main(String[] args) {

> list = new ArrayList<>();

() {

@Override

public int compare(Stu o1, Stu o2) {

return o1.getId()-o2.getId();

}

});

t1.put(new Stu(1,"abc",12),89757);

t1.put(new Stu(2,"df",12),1111);

t1.put(new Stu(3,"er",12),31);

() {

@Override

public int compare(Stu o1, Stu o2) {

return o1.getId()-o2.getId();

}

});

t2.put(new Stu(1,"df",12),8);

t2.put(new Stu(2,"dfdfdf",12),11);

t2.put(new Stu(3,"dfdf",12),3);

list.add(t1);

list.add(t2);

tm : list) {

> entries = tm.entrySet();

entry : entries) {

System.out.println(entry.getKey().getName()+"---"+entry.getValue());

}

}*/

tm : list) {

stus = tm.keySet();

for (Stu stu : stus) {

Integer i = tm.get(stu);

System.out.println(stu.getName()+"-----"+stu.getAge()+"---"+i);

}

System.out.println("---------------------");

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import com.momo.po.Tea;

import java.util.*;

public class Demo20 {

public static void main(String[] args) {

//比较器排序

> ts = new TreeMap<>(new Comparator() {

@Override

public int compare(Tea o1, Tea o2) {

return o1.getAge()-o2.getAge();

}

});

momo = new ArrayList<>();

momo.add(new Stu(1,"aa",11));

momo.add(new Stu(2,"bb",11));

momo.add(new Stu(3,"cc",11));

cang = new ArrayList<>();

cang.add(new Stu(1,"郑硕",12));

cang.add(new Stu(2,"李威",13));

cang.add(new Stu(3,"赵凯",14));

ts.put(new Tea("momo",18),momo);

ts.put(new Tea("cang",38),cang);

keys = ts.keySet();

for (Tea key : keys) {

list = ts.get(key);

System.out.println(key.getName());

for (Stu stu : list) {

System.out.println("\t"+stu.getName());

}

System.out.println("------------------");

}*/

>> entries = ts.entrySet();

> entry : entries) {

Tea t = entry.getKey();

list = entry.getValue();

System.out.println(t.getName());

for (Stu stu : list) {

System.out.println("\t"+stu.getName());

}

}

}

}

package com.momo.demo;

import java.util.ArrayList;

import java.util.LinkedList;

public class Demo8 {

public static void main(String[] args) {

list1 = new ArrayList<>();

list1.add("宝强");

list1.add("马蓉");

list1.add("宋吉吉");

list2 = new ArrayList<>();

list2.add("唐僧");

list2.add("猴子");

list2.add("八戒");

list2.add("沙和尚");

list3 = new ArrayList<>();

list3.add("金莲");

list3.add("大郎");

list3.add("门庆");

> big = new LinkedList<>();

big.add(list1);

big.add(list2);

big.add(list3);

list : big) {

for (String s : list) {

System.out.println(s);

}

System.out.println("--------------");

}

}

}

package com.momo.demo;

import com.momo.po.Stu;

import java.util.ArrayList;

import java.util.LinkedList;

/*

3个班

西游班

水浒班

红楼班

* */

public class Demo9 {

public static void main(String[] args) {

xiyou = new LinkedList<>();

xiyou.add(new Stu(1,"唐生",18));

xiyou.add(new Stu(2,"悟空",30));

shuihu = new LinkedList<>();

shuihu.add(new Stu(101,"金莲",18));

shuihu.add(new Stu(102,"武松",26));

honglou = new LinkedList<>();

honglou.add(new Stu(1,"宝玉",18));

honglou.add(new Stu(2,"黛玉",19));

honglou.add(new Stu(3,"宝钗",20));

> big = new ArrayList<>();

big.add(xiyou);

big.add(shuihu);

big.add(honglou);

list : big) {

//System.out.println(list);

for (Stu stu : list) {

System.out.println(stu.getName()+"--"+stu.getAge());

}

System.out.println("--------------");

}

}

}

package com.momo.demo;

import java.util.Random;

import java.util.TreeSet;

/*

* 获取10个1-50随机数,要求不能重复

* */

public class Demo11 {

public static void main(String[] args) {

ts = new TreeSet<>();

Random r = new Random();

while (ts.size()<10){

int i = r.nextInt(50)+1;

ts.add(i);

}

for (Integer t : ts) {

System.out.println(t);

}

}

}

package com.momo.demo;

import com.momo.po.Student;

import java.util.Comparator;

import java.util.Scanner;

import java.util.TreeSet;

/*

* 键盘输入几个学生信息(科目成绩),按照总成绩从高到低排序

* */

public class Demo12 {

public static void main(String[] args) {

() {

@Override

public int compare(Student o1, Student o2) {

int i = o2.getSum()-o1.getSum();//总成绩

int i2 = i==0?o2.getMath()-o1.getMath():i;

int i3 = i2==0?o2.getEnlish()-o1.getEnlish():i2;

int i4 = i3==0?o2.getChinese()-o1.getChinese():i3;

int i5 = i4==0?o2.getId()-o1.getId():i4;

return i5;

}

});

Scanner sc = new Scanner(System.in);

System.out.println("要开始录入学生信息吗?1-开始 0-结束");

aa:while (true) {

int i = sc.nextInt();

switch (i) {

case 1:

System.out.println("开始录入:");

System.out.println("编号:");

int id = sc.nextInt();

System.out.println("数学成绩:");

int math = sc.nextInt();

System.out.println("英语成绩:");

int english = sc.nextInt();

System.out.println("中文成绩:");

int chinese = sc.nextInt();

ts.add(new Student(id,math,english,chinese));

System.out.println("还要继续录入吗?1-开始 0-结束");

break;

case 0:

System.out.println("结束录入。");

System.out.println("成绩从高到低的排序如下:");

for (Student s : ts) {

System.out.println(s.getSum()+","+s.getMath()+","+s.getEnlish()+","+s.getChinese()+","+s.getId());

}

break aa;

default:

System.out.println("输入有误。。。");

break;

}

}

}

}

package com.momo.po;

public class Student {

private int id;

private int math;

private int enlish;

private int chinese;

public Student() {

}

public Student(int id, int math, int enlish, int chinese) {

this.id = id;

this.math = math;

this.enlish = enlish;

this.chinese = chinese;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getMath() {

return math;

}

public void setMath(int math) {

this.math = math;

}

public int getEnlish() {

return enlish;

}

public void setEnlish(int enlish) {

this.enlish = enlish;

}

public int getChinese() {

return chinese;

}

public void setChinese(int chinese) {

this.chinese = chinese;

}

public int getSum(){

return math+enlish+chinese;

}

}

---

标签:Map,Stu,System,put,println,集合,new,out
From: https://blog.51cto.com/u_16230968/7418908

相关文章

  • KdMapper扩展实现之CrystalMark(winring0x64.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称winring0x64.sys 时间戳47......
  • 双列集合
    title:双列集合index_img:img/21.svgtags:-JavaSE-集合categories:-JavaSEhide:falseexcerpt:原理、常用方法、遍历双列集合由一对对元素组成{key-value}的集合。一次存一对数据key不能重复【元素对唯一】,value可以key和value是一一映射关系{key-v......
  • KdMapper扩展实现之CPUID(cpuz141.sys)
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称cpuz141.sys 时间戳583446......
  • C# 信号量 Semaphore
    ///<summary>///信号量,类似于占坑机制,初始设为5个空的坑位,且最大5个位置///</summary>staticreadonlySemaphoresemaphore=newSemaphore(5,5);staticvoidTest(){Task.Run(AAA);BBB();......
  • 【Ps小问题集合】
    (Ps小问题集合)一、小问题1.1Ps将图片裁剪成圆的首先打开ps,打开需要进行裁剪的图片选择右侧的椭圆选框工具按着shift可以进行圆形的绘制,不按shift则会是椭圆绘制完成后,按着ctrl+j键,新建图层,即可在右侧图层栏新建一图层,图层内容为刚刚选中的部分,将最开始的图层的眼睛选择......
  • 使用GlobeMapper下载谷歌影像
    1谷歌图源1.1有路网标注无偏移 http://gac-geo.googlecnapps.cn/maps/vt?lyrs=s,h&gl=CN&h1=zh-CN&x=%x&y=%y&z=%z1.2无标注无偏移  http://gac-geo.googlecnapps.cn/maps/vt?lyrs=s&x=%x&y=%y&z=%z2下载步骤2.1添加相应的数据源-点击连接到联机数据......
  • sql集合-查询语句
    1,张飞借阅书的籍-子查询SELECTb.book_nameFROMbookinfobINNERJOINbook_borrowbbONb.book_id=bb.book_idWHEREbb.card_id=(SELECTcard_idFROMreaderWHEREname="张飞")2,左/右链接查询SELECTb.book_name,bb.borrow_dataFROMbookinfobRIGHTJOINbook_borrowb......
  • RDMA-内核接口-rxe_map_mr_sg
    描述:映射mr的sg调用链:此处多处调用staticintnvme_rdma_map_sg_fr(structnvme_rdma_queue*queue,    structnvme_rdma_request*req,structnvme_command*c,    intcount){   req->mr=ib_mr_pool_get(queue->qp,&queue->qp->rdma_mrs);  /*  ......
  • 集合数据类型内置方法
    集合基本用不到,考试会考作用就是存储一大堆元素的东西,容器数据类型定义方式以{}用逗号隔开不可变数据类型s={1,2,1,'a','a','c'}print(s)去重 #用得到乱序lis=[1,2,3,1,3]print(set(lis))print(list(set(lis)))s={}#空大括号是字典,不是集合,定义空集合必须得......
  • list集合分组拆分
    #n组publicstatic<T>List<List<T>>averageAssign(List<T>source,intn){List<List<T>>result=Lists.newArrayList();intrenumber=source.size()%n;intnumber=source.size()/n;......