java map取第一个元素_java常用对象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集合中的元素进行取出。

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 假设现在有一个整数列表,我们想要使用 Java 的 Stream 流和 filter 方法来找到其的偶数。 可以使用以下代码实现: ```java import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println("偶数集合为: " + evenNumbers); } } ``` 以上代码,首先我们创建了一个整数列表 `numbers`,其包含了 1 到 10 的整数。然后,我们使用 `stream` 方法将列表转化为流对象,并使用 `filter` 方法来筛选出其的偶数。最后,我们使用 `collect` 方法将结果收集为一个集合。 输出结果为:`偶数集合为: [2, 4, 6, 8, 10]`,其包含了原始列表的所有偶数元素。 ### 回答2: stream流是Java 8引入的一个新的数据处理方式,filter是其的一个操作方法。filter方法可以根据指定的条件从流过滤出满足条件的元素,然后返回一个新的流。下面是一个案例来说明如何使用stream流的filter方法取出一个元素集合。 假设有一个存储了学生信息的集合,每个学生对象包含姓名和年龄两个属性。我们现在希望从这个集合找出年龄大于18岁的其一个学生。以下是实现代码示例: ```java import java.util.ArrayList; import java.util.List; import java.util.Optional; class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class Main { public static void main(String[] args) { List<Student> students = new ArrayList<>(); students.add(new Student("张三", 20)); students.add(new Student("李四", 17)); students.add(new Student("王五", 22)); students.add(new Student("赵六", 19)); Optional<Student> student = students.stream() .filter(s -> s.getAge() > 18) // 过滤出年龄大于18岁的学生 .findFirst(); // 得第一个满足条件的学生对象 if (student.isPresent()) { System.out.println("年龄大于18岁的学生姓名:" + student.get().getName()); } else { System.out.println("找不到满足条件的学生!"); } } } 输出结果为:年龄大于18岁的学生姓名:张三 在这个案例,我们首先创建了一个存储学生信息的集合。然后使用stream流的filter方法,根据条件筛选出年龄大于18岁的学生对象。最后使用findFirst方法得第一个满足条件的学生对象,并且将其姓名打印出来。 通过这个案例,我们可以看到使用stream流的filter方法可以方便地从集合取出满足条件的元素,并返回一个新的流供我们进一步处理。 ### 回答3: stream流的filter操作是一种对流进行筛选的操作,可以根据条件过滤流元素。下面以一个案例来说明如何使用stream流的filter操作来取出一个元素集合。 假设有一个学生列表,每个学生对象都有姓名、年龄和成绩属性。我们想要从这个学生列表,找出年龄大于18岁的学生,并将他们的成绩放入一个集合。 首先,我们可以使用stream流操作将学生列表转换为流: ```java List<Student> studentList = Arrays.asList(new Student("Tom", 20, 90), new Student("John", 19, 85), new Student("Mary", 17, 95), new Student("Chris", 21, 88)); Stream<Student> studentStream = studentList.stream(); ``` 然后,我们使用filter操作筛选出年龄大于18岁的学生: ```java Stream<Student> filteredStudentStream = studentStream.filter(student -> student.getAge() > 18); ``` 在这里,我们使用lambda表达式来指定过滤的条件,即年龄大于18岁的学生。 最后,我们使用map操作将筛选后的学生转换为他们的成绩,并将其收集到一个集合: ```java List<Integer> scoreList = filteredStudentStream.map(Student::getScore) .collect(Collectors.toList()); ``` 在这里,我们使用map操作将学生对象转换为成绩,然后使用collect操作将成绩收集到一个列表。 这样,我们就成功地从学生列表找出了年龄大于18岁的学生,并将他们的成绩放入了一个集合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值