You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Vector多对象元素操作:如何按指定对象值筛选?

如何筛选Java Vector中price>100的复合元素?

完全可行!先给你理清楚思路:你说的每个包含object1、object2和price的元素,本质上应该是一个自定义的Java类(比如咱们叫它Item)——就像数据库里的一条记录,而类里的这三个项就是记录的“字段”。

第一步:先定义你的复合元素类

首先得把这个包含三个对象的元素类写好,关键是要给price加一个getter方法,这样才能从每个元素里取出价格做判断:

public class Item {
    // 这里可以换成具体的类型,比如String、Integer,不用Object
    private Object object1;
    private Object object2;
    private double price; // 假设price是数值类型,比如double或Integer

    // 构造方法,用来创建Item对象
    public Item(Object object1, Object object2, double price) {
        this.object1 = object1;
        this.object2 = object2;
        this.price = price;
    }

    // 必须的:获取price的方法
    public double getPrice() {
        return price;
    }

    // 可选:重写toString,方便打印元素的具体内容
    @Override
    public String toString() {
        return "Item{" +
                "object1=" + object1 +
                ", object2=" + object2 +
                ", price=" + price +
                '}';
    }
}

第二步:筛选并打印符合条件的元素

这里给你两种常用的实现方式:

方式1:传统循环遍历(兼容Java 8之前的版本)

直接遍历Vector里的每个Item对象,取出价格判断后打印:

import java.util.Vector;

public class VectorFilterDemo {
    public static void main(String[] args) {
        // 初始化Vector,添加几个测试元素
        Vector<Item> itemVector = new Vector<>();
        itemVector.add(new Item("商品A", "类别X", 80.0));
        itemVector.add(new Item("商品B", "类别Y", 120.0));
        itemVector.add(new Item("商品C", "类别Z", 150.0));

        // 筛选price>100的元素
        for (Item item : itemVector) {
            if (item.getPrice() > 100) {
                System.out.println(item);
            }
        }
    }
}

方式2:Java 8+ Stream API(更简洁)

如果你的项目用Java 8及以上,用Stream可以写出更清爽的代码:

import java.util.Vector;

public class VectorStreamFilterDemo {
    public static void main(String[] args) {
        Vector<Item> itemVector = new Vector<>();
        itemVector.add(new Item("商品A", "类别X", 80.0));
        itemVector.add(new Item("商品B", "类别Y", 120.0));
        itemVector.add(new Item("商品C", "类别Z", 150.0));

        // 用Stream过滤并打印
        itemVector.stream()
                .filter(item -> item.getPrice() > 100)
                .forEach(System.out::println);
    }
}

关于你的附带问题

这种复合元素里的各个项,在Java里叫做类的属性(Attribute)或者成员变量(Member Variable),对应数据库里的字段(Field/Column)——和你说的数据库记录的组成部分完全对应,每个属性就像表的一列,每个Item对象就像表中的一条记录。

内容的提问来源于stack exchange,提问作者Ohto Nordberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:35:32