javafx之ObservableList<person>筛选

假如你有一个列表,含有p1,p2,p3…个元素。
你筛选得到其中的某些元素(用list成员的某些属性进行筛选)
下面用Group作为条件筛选。
在MIan class

public static  ObservableList<Person> personData = FXCollections.observableArrayList();//原本的List
private static ObservableList<Person> backupData = FXCollections.observableArrayList();//备份数据
  static Filter filter = new Filter();//筛选器,代码在下面
  backupData.addAll(personData);//将数据备份

 public void applyFilter(String Group) {//分组筛选
    	filter.setData(personData);
    	filter.setFilter(Group);
    	setFilteredData(filter.getData());
    }
    public static void setFilteredData(ObservableList<Person> personData) {
		MainApp.personData = personData;
	}

//新建一个筛选器类

public class Filter {
    private ObservableList<Person> data = FXCollections.observableArrayList();//创建
    public void setFilter(String filter){
        List<Person> copy = new ArrayList<Person>(data);
        		for(Person f: copy) {
        			if(f.getFirstName()!=filter) data.remove(f);//筛选
        		}
        }
    }
    public ObservableList<Person> getData() {
        return data;
    }
    public void setData(ObservableList<Person> data) {
        this.data = data;
    }
}

调用applyFilter()函数即可筛选
你可以用personData.addAll(backupData);将数据还原。
//网上学习到的方法,跟大家分享。
//若有侵权,可联系我,我会删除。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值