怎么取出List<sight> sights的数据
时间: 2024-04-30 20:20:55 浏览: 13
取出 List<sight> sights 中的数据,可以使用循环遍历每个元素,或者使用 Java 8 的 Stream API 进行操作。
1. 使用循环遍历:
```java
for (int i = 0; i < sights.size(); i++) {
Sight sight = sights.get(i);
// 对 sight 进行操作
}
```
2. 使用 Java 8 的 Stream API:
```java
sights.stream().forEach(sight -> {
// 对 sight 进行操作
});
```
或者,如果需要对每个元素进行某些操作并将结果收集到一个新的 List 中,可以使用 map 和 collect 方法:
```java
List<String> sightNames = sights.stream()
.map(sight -> sight.getName())
.collect(Collectors.toList());
```
上述代码将从每个 Sight 对象中提取名称,并将结果收集到一个新的 List<String> 中。
相关问题
void query_sight(char name[]) { int i; for (i = 0; i < num_sights; i++) { if (strcmp(sights[i].name, name) == 0) { printf("%s 的门票价格为 %d 元,余票数量为 %d 张。\n", name, sights[i].price, sights[i].rest_tickets); return; } } printf("未找到名为 %s 的景点!\n", name); }
这是一个查询景点门票信息的函数,它接受一个字符串参数name,表示需要查询的景点名称。函数会遍历已有的景点信息,如果找到了名称与参数name相同的景点,则输出该景点的门票价格和余票数量。如果没有找到,则输出提示信息。其中,num_sights表示已有的景点数量,sights是一个结构体数组,每个结构体存储一个景点的名称、门票价格和余票数量。strcmp函数用于比较两个字符串是否相等。如果相等,则返回0。
void buy_ticket(char name[], int num) { int i; for (i = 0; i < num_sights; i++) { if (strcmp(sights[i].name, name) == 0) { if (sights[i].rest_tickets >= num) { sights[i].rest_tickets -= num; printf("购买成功!共花费 %d 元。\n", sights[i].price * num); } else { printf("购买失败:余票不足!\n"); } return; } } printf("未找到名为 %s 的景点!\n", name); }
这段代码实现了景点门票的购买功能。它接受两个参数,一个是要购买的景点的名称,另一个是购买的门票数量。
函数首先使用一个循环遍历所有的景点,直到找到名字匹配的景点为止。如果找到了名字匹配的景点,那么就检查该景点的余票数量是否足够购买。如果余票数量足够,那么就减少该景点的余票数量,并输出购买成功信息,购买花费的总价也会被计算并输出。如果余票数量不足,那么就输出购买失败信息。如果没有找到名字匹配的景点,那么就输出未找到该景点的信息。
这段代码使用了结构体数组中的景点名称、门票价格和余票数量等信息,以及字符串比较函数 strcmp(),用于查找名字匹配的景点。这个函数是一个比较简单的功能实现,但是可以作为学习和练习基本函数设计的例子。