精华内容
下载资源
问答
  • Java中如何取出Map集合元素

    千次阅读 2021-02-12 23:20:18
    JavaMap集合没有迭代器,需要将其转换为set集合/*map集合的两种取出方式:1,SetkeySet:将map中所有的键存入到Set集合。因为set具备迭代器。 所有可以迭代方式取出所有的键,在根据get方法。获取一个键对应的...

    Java的Map集合中没有迭代器,需要将其转换为set集合

    /*map集合的两种取出方式:1,SetkeySet:将map中所有的键存入到Set集合。因为set具备迭代器。 所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。 Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。2,Set> entrySet:将map集合中的映射关系存入到了set集合中, 而这个关系的数据类型就是:Map.Entry Entry其实就是Map中的一个static内部接口。 为什么要定义在内部呢? 因为只有有了Map集合,有了键值对,才会有键值的映射关系。 关系属于Map集合中的一个内部事物。 而且该事物在直接访问Map集合中的元素。*/import java.util.*;class MapDemo2 { public static void main(String[] args) { Mapmap = new HashMap(); map.put('02','zhangsan2'); map.put('03','zhangsan3'); map.put('01','zhangsan1'); map.put('04','zhangsan4'); //将Map集合中的映射关系取出。存入到Set集合中。 Set> entrySet = map.entrySet(); Iterator> it = entrySet.iterator(); while(it.hasNext()) { Map.Entryme = it.next(); String key = me.getKey(); String value = me.getValue(); System.out.println(key+':'+value); } /* //先获取map集合的所有键的Set集合,keySet(); SetkeySet = map.keySet(); //有了Set集合。就可以获取其迭代器。 Iteratorit = keySet.iterator(); while(it.hasNext()) { String key = it.next(); //有了键可以通过map集合的get方法获取其对应的值。 String value = map.get(key); System.out.println('key:'+key+',value:'+value); } */ }}/*Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。interface Map{ public static interface Entry { public abstract Object getKey(); public abstract Object getValue(); }}class HashMap implements Map{ class Hahs implements Map.Entry { public Object getKey(){} public Object getValue(){} } }*/

    练习题:

    /*每一个学生都有对应的归属地。学生Student,地址String。学生属性:姓名,年龄。注意:姓名和年龄相同的视为同一个学生。保证学生的唯一性。1,描述学生。2,定义map容器。将学生作为键,地址作为值。存入。3,获取map集合中的元素。*/import java.util.*;class Student implements Comparable{ private String name; private int age; Student(String name,int age) { this.name = name; this.age = age; } //为了确保使用TreeSet集合存储元素,使得Student类实现Comparable接口和实现compareTo方法 public int compareTo(Student s) { int num = new Integer(this.age).compareTo(new Integer(s.age)); if(num==0) return this.name.compareTo(s.name); return num; }//为了确保使用HashSet集合存储元素,实现hashCode和equals方法 public int hashCode(){return name.hashCode()+age*34;}public boolean equals(Object obj){if(!(obj instanceof Student))throw new ClassCastException('类型不匹配');Student s = (Student)obj;return this.name.equals(s.name) && this.age==s.age;}public String getName(){return name;}public int getAge(){return age;}public String toString(){return name+':'+age;}}class MapTest{public static void main(String[] args) {HashMaphm = new HashMap();hm.put(new Student('lisi1',21),'beijing');hm.put(new Student('lisi1',21),'tianjin');hm.put(new Student('lisi2',22),'shanghai');hm.put(new Student('lisi3',23),'nanjing');hm.put(new Student('lisi4',24),'wuhan');//第一种取出方式 keySetSetkeySet = hm.keySet();Iteratorit = keySet.iterator();while(it.hasNext()){Student stu = it.next();String addr = hm.get(stu);System.out.println(stu+'..'+addr);}//第二种取出方式 entrySetSet> entrySet = hm.entrySet();Iterator> iter = entrySet.iterator();while(iter.hasNext()){Map.Entryme = iter.next();Student stu = me.getKey();String addr = me.getValue();System.out.println(stu+'.........'+addr);}}}

    练习2

    展开全文
  • 假设我有一给定名称,姓氏对的地图,并且我想要找到该地图具有匹配一定值的姓氏的第一个条目的给定名称.我们将如何以java 8方式做到这一点.在我下面的测试用例的例子,我提出了两种方法.然而,第一个(寻找名为...

    假设我有一个给定名称,姓氏对的地图,并且我想要找到该地图中具有匹配一定值的姓氏的第一个条目的给定名称.

    我们将如何以

    java 8方式做到这一点.

    在我下面的测试用例的例子中,我提出了两种方法.

    然而,第一个(寻找名为“Donkey”的第一个人的给定名称)将抛出java.util.NoSuchElementException:没有值存在,因此它不安全.

    第二个工作,但它不仅阅读困难但它有点不太有用.

    只是想知道有人在这里会建议我使用stream()或forEach()或两者来实现这一点更为简单一些.

    @Test

    public void shouldBeAbleToReturnTheKeyOfTheFirstMatchingValue() throws Exception {

    Map names = new LinkedHashMap<>();

    names.put("John","Doe");

    names.put("Fred","Flintstone");

    names.put("Jane","Doe");

    String keyOfTheFirst = names.entrySet().stream().filter(e -> e.getValue().equals("Doe")).findFirst().get().getKey();

    assertEquals("John",keyOfTheFirst);

    try {

    names.entrySet().stream().filter(e -> e.getValue().equals("Donkey")).findFirst().get();

    } catch (NoSuchElementException e){

    // Expected

    }

    Optional> optionalEntry = names.entrySet().stream().filter(e -> e.getValue().equals("Donkey")).findFirst();

    keyOfTheFirst = optionalEntry.isPresent() ? optionalEntry.get().getKey() : null;

    assertNull(keyOfTheFirst);

    }

    先谢谢你.

    展开全文
  • 之前在上篇《java常用对象API集合框架之Map的用法》文章简单的例举了一些Map集合的一些简单方法和一些常用的子类,那么本章将对例举的方法和子类进行一一的详细说明和举例,这样也是为了让更多的朋友们学习...

    之前在上一篇《java常用对象API中集合框架之Map的用法》文章中简单的例举了一些Map集合中的一些简单方法和一些常用的子类,那么本章将对例举的方法和子类进行一一的详细说明和举例,这样也是为了让更多的朋友们学习java能够得到另一种启发而得以快速的掌握java的相关知识,从而让大家的java编程之路走的更明白。

    这里说一个题外话,大家在学习java的过程中一定要多练和多分析案例,也就是大家最好能够多敲敲代码,那怕你自己已经认为你会了,或者你懂了,但是不要认为多敲代码是一种奢侈,因为只有你多敲多练才是你真正快速上手的一把利器。

    继续回到我们今天的主题。

    之前在上一篇文章中已经例举了Map集合中的一些方法,这些方法其实很简单,那么我这里只想告诉大家两种不同的取出(迭代)方法,也就是取出关于这个Map中的键值内容。

    第一种方式:

    大家都知道,对于Map集合中本身已经有一个方法可以直接取出Map集合中的值,这个方法分别是get();方法。这个方法只能是利用键来取出值,但是如何来取出键呢?

    然后在API中找到了另外一个方法,keySet();方法,这个方法可以取出Map中所有的键所在的Set集合;再通过Set的迭代器获取到每一个键,之后再用get();方法获得对应的值。

    例如:

    //导入所有需要用到的包

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Set;

    //主函数

    public class MapDemo{

    public static void main(String[] args){

    Map map = new HashMap();

    //返回前一个和key关联的值,如果没有返回null,相当于添加一些元素进集合

    /*如果存在键相同,值不同,那么会覆盖之前的值*/

    map.put(8,”张三”);

    map.put(2,”李四”);

    map.put(6,”王五”);

    map.put(4,”赵六”);

    //返回map映射中所有的键Set集合并进行迭代

    Set keySet = map.keySet();

    Iterator it = keySet.iterator();

    while(it.hasNext){

    //将取出的值赋值给key

    Integer key = it.next();

    //将key放入get方法进行取出对应的值并打印

    String value = map.get(key);

    System.out.println(key+”–“+value);

    }

    }

    }

    这样就将Map集合中的元素通过Set集合的迭代器进行了取出,当然,除了上面的方法外,这里智言还会介绍第二种方式来进行取出。

    第二种法式:

    我们在API中查询到另外一个方法entrySet();,这个方法是返回整个Map集合中所有的键值关系内容,什么意思呢?我们在第一种方式中提到的keySet方法是返回整个Map中所有的键元素,而entrySet方法是返回整个Map中所有的键值元素。

    例如:

    //导入所有需要用到的包

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Set;

    //主函数

    public class MapDemo{

    public static void main(String[] args){

    Map map = new HashMap();

    //返回前一个和key关联的值,如果没有返回null,相当于添加一些元素进集合

    /*如果存在键相同,值不同,那么会覆盖之前的值*/

    map.put(8,”张三”);

    map.put(2,”李四”);

    map.put(6,”王五”);

    map.put(4,”赵六”);

    //返回map映射中所有的键值Set集合并通过getKey和getValue取出相应的键和值;

    Set entrySet= map.entrySet();

    Iterator it = entrySet.iterator();

    while(it.hasNext){

    Map.Entry me = it.next();

    //将取出的键元素赋值给key

    Integer key = me.getKey();

    //将取出的值元素复制给value

    String value = me.getValue();

    System.out.println(key+”–“+value);

    }

    }

    }

    那么通过以上两种方式都能将Map集合中的元素进行取出。

    注意:所有的代码都没有加泛型。

    展开全文
  • java 怎么样获取Map中第键值对

    千次阅读 2021-02-12 16:18:31
    展开全部publicstaticvoidmain(String[]args){Mapmap=newHashMap();map.put("key1","value1");map.put("key2","value2");map.put("key3","value3");SetkeySet=map.keySet();inti=map.size()-1;Mapmap...

    展开全部

    public static void main(String[] args) {

    Map map = new HashMap();

    map.put("key1", "value1");

    map.put("key2", "value2");

    map.put("key3", "value3");

    Set keySet = map.keySet();

    int i = map.size()-1;

    Map mapKey = new HashMap();

    Map mapValue = new HashMap();

    for(java.util.Map.Entry entry : map.entrySet()) {

    //将原来MAP的VALUE放入新的MAP的VALUE里面

    mapKey.put(i, entry.getValue());

    //将原来MAP的KEY放入新的MAP的VALUE 里面

    mapValue.put(i, entry.getKey());

    i--;

    }

    //打印KEY值

    System.out.println(mapKey.get(2));

    //打印VALUE值

    System.out.println(mapValue.get(0));

    }

    738aac61848de1c8aea0d1e65f48108c.png

    扩展资料:

    java键值636f707962616964757a686964616f31333366306536对的使用

    Map集合没有继承Collection接口,但是其提供了key到value的映射。每一个key不能有相同,每个key只能映射一个value值。

    下面通过一个程序来说明键值对的使用,下面是一个基本的键值对应用程序:

    package Test;

    import java.util.Collection;

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Map;

    import java.util.Set;

    public class KeyValue {

    public static void main(String[] args) {

    Map map=new HashMap<>();

    map.put("01", "张三");

    map.put("02", "王五");

    Set set=map.keySet();

    Iterator it=set.iterator();

    System.out.println("key中集合元素:");

    while(it.hasNext()){

    System.out.println(it.next());

    }

    Collection coll=map.values();

    it=coll.iterator();

    System.out.println("value中集合元素:");

    while(it.hasNext()){

    System.out.println(it.next());

    }

    }

    }

    输出结果如图所示:

    3cf2e4740708b009a66f9514960c7791.png

    展开全文
  • 获取LinkedHashMap的头部元素(最早添加的元素):时间复杂度O(1)public Entry getHead(LinkedHashMap map) {return map.entrySet().iterator().next();}获取LinkedHashMap的末尾元素(最近添加的元素):时间复杂度...
  • public static void main(String[] args) {Map map = new HashMap();map.put("name", "ZK");map.put("age", 13);Map map2 = new HashMap();map2.put("name", "ZA");map2.put("age", 15);Map map3 = new HashMap();ma...
  • import java.util.Arrays;import java.util.List;public class Main{public static void main(String[] argv){List persons = Arrays.asList(new Person("HTML", 12), new Person("Aim", 34), new Person("John", 23...
  • Suppose I have a list like this :[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]Is it possible to use a Java 8 stream to take every second element from this list to obtain the following?[1, 3, 5, 7, 9]Or maybe even e...
  • 本文为大家分享了Map集合利用keySet方法获取所有的元素值,供大家参考,具体内容如下/*---------------------------Map集合利用keySet方法获取所有的元素值:....keySet方法:将Map中的所有key值存入到Set集合...
  • java - 如何从hashmap中获取一个条目而不进行迭代如果密钥未知,是否有种从HashMap只获得一个Entry的优雅方式,无需迭代。由于进入的顺序并不重要,我们可以说类似的东西hashMapObject.get(zeroth_index);虽然我...
  • java - HashMap - 获取First Key值

    千次阅读 2021-02-26 20:35:24
    java - HashMap - 获取First Key值下面是HashMap包含的值statusName {Active=33, Renewals Completed=3, Application=15}获取第一个密钥(即活动)的Java代码Object myKey = statusName.keySet().toArray()[0];...
  • 2、创建一个Map集合,key是字符串的字符,value是字符的个数。3、遍历字符串,获取一个字符。5、使用获取到的字符,去集合Map判断key(字符)是否存在。6、假如key(字符)存在,那么该key对应的value数值增加1,即...
  • 我正在开发2D游戏,我正在使用LWJGL和Slick-Util库来提供帮助。...这是我关于HashMap的代码:Java HashMap只返回列表的最后一个元素public Map textures;public void loadTextures(){textures = new HashMap...
  • Map java中的map 如何修改Map的对应元素Map以按键/数值对的形式存储数据,和数组非常相似,在数组存在的索引,它们本身也是对象。Map的接口Map---实现MapMap.Entry--Map的内部类,描述Map的按键/数值对。...
  • 这就导致了对Java流(例如map和filter)的操作必须独立于流的项目位置或其周围的项目。 这具有易于分割流以进行并行处理的优点。 它具有使某些操作更复杂的缺点。因此,简单的答案是,没有简单的方法可以完成诸如...
  • 本文为大家分享了使用entrySet方法获取Map集合中元素的具体代码,供大家参考,具体内容如下/*---------------------------------使用entrySet方法取出Map集合元素:....该方法是将Map集合key与value的关系存入...
  • Map中根据条件删除元素

    千次阅读 2021-03-15 03:00:13
    今天在写程序过程,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下:public Map processMap(Map list) {Map map = list;Iterator iter = ...
  • 1. 介绍本入门教程将介绍Java8如何合并两个map。更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况。2. 初始化我们定义两个map实例private static Map map1 = new HashMap<>();private ...
  • JavaHashmap:如何从值中获取密钥?

    千次阅读 2021-02-27 20:52:22
    如果您的数据结构有多对一键和值之间的映射应该迭代条目并选择所有合适的键:publicstaticSetgetKeysByValue(Mapmap,Evalue){Setkeys=newHashSet();for(Entryentry:map.entrySet()){if(Objects.equals(value,entry....
  • 我想获取具有特定用户名的流(第一个)用户的索引。 我并不想实际上将User设置为某些描述的User的.equals(),只是具有相同的用户名。我可以想到执行此操作的丑陋方法(重复和计数),但感觉应该有一种不错的方法(可能...
  • I have used LinkedHashMap because it is important the order in which keys entered in the map.But now I want to get the value of key in the first place (the first entered entry) or the last.Should ther...
  • import java.util.Map; /** * <p> * map工具 集合 * </p> * * @Author REID * @Blog https://blog.csdn.net/qq_39035773 * @GitHub https://github.com/BeginnerA * @Data 2020/11/6 * @...
  • java list map在初始化的时候添加元素

    千次阅读 2021-03-11 13:38:44
    List list = new ArrayList(){{add("First Object");add("Second Object");...Map map = new HashMap(){{put("First Key", "First Value");put("Second Key", "Second Value");put("Third Key",...
  • 目前使用Stream API无法轻松实现对匹配谓词的连续元素进行操作.Returns a stream consisting of lists of elements of this stream where adjacent elements are grouped according to supplied predicate....
  • 我们已经知道,可以获取 map 容器的开始和结束迭代器以及反向迭代器,它们都可以访问容器的所有元素map 的成员函数 at() 返回的是参数键对应的对象。如果这键不存在,就会拋出 out_of_range 异常。下面展示...
  • java中遍历MAP,嵌套map的几种方法

    千次阅读 2021-02-13 01:57:28
    java中遍历MAP的几种方法Map map=new HashMap();map.put("username", "qq");map.put("passWord", "123");map.put("userID", "1");map.put("email", "qq@qq.com");1.用for循环for (Map.Entry entry : map.entrySet())...
  • * 获取List的不同元素 * @param list1 * @param list2 * @return */ public static List<String> getDiffrent(List<String> list1, List<String> list2) { long st = System....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 159,063
精华内容 63,625
关键字:

java获取map中第一个元素

java 订阅