Java多条件检索List中对象属性算法

最近写个微信小程序,需要自己根据多个条件,去List中的对象属性去匹配和检索,因为之前实现都是去查询数据库,多条件直接拼,但是小程序这里不好使,因为不能使用数据库,所以简单的一个多条件查询也要自己实现(暂时没有想到更好的方案),贴出现有实现方案:

public class Test {

	public static void main(String[] args) {
		// 条件
		String number = "";
		String city = "天津";
		String sex = "123";
		String time = "";

		ArrayList<Item> datas = new ArrayList<>();

		datas.add(new Item("220", "北京", "12", "123"));
		datas.add(new Item("220", "上海", "123", "123"));
		datas.add(new Item("110", "广州", "13", "123"));
		datas.add(new Item("35", "上海", "14", "234"));
		datas.add(new Item("250", "上海", "", "123"));
		datas.add(new Item("220", "北京", "123", "2345"));

		ArrayList<Item> numberItem = new ArrayList<>();
		if (number != "") {
			for (int i = 0; i < datas.size(); i++) {
				if (datas.get(i).number.equals(number)) {
					numberItem.add(datas.get(i));
				}
			}
		} else {
			// 数据不变
			numberItem .addAll (datas);
		}

		ArrayList<Item> cityItem = new ArrayList<>();
		if (city != "") {
			if (numberItem != null) {
				for (int i = 0; i < numberItem.size(); i++) {
					if (numberItem.get(i).city.equals(city)) {
						cityItem.add(numberItem.get(i));
					}
				}
			}
		} else {
			cityItem.addAll(numberItem) ;
		}
		
		ArrayList<Item> sextems = new ArrayList<>();
		if (sex != "") {
			if (cityItem != null) {
				for (int i = 0; i < cityItem.size(); i++) {
					if (cityItem.get(i).sex.equals(sex)) {
						sextems.add(cityItem.get(i));
					}
				}
			}
		} else {
			sextems.addAll(cityItem);
		}
		
		
		ArrayList<Item> timeItems = new ArrayList<>();
		if (time != "") {
			if (sextems != null) {
				for (int i = 0; i < sextems.size(); i++) {
					if (sextems.get(i).time.equals(time)) {
						timeItems.add(sextems.get(i));
					}
				}
			}
		} else {
			timeItems.addAll( sextems);
		}
		
		
		for (int i = 0; i < timeItems.size(); i++) {
			System.out.println(timeItems.get(i).toString());
		}

	}

}

item.java如下所示


public class Item {
	public String number;
	public String city;
	public String sex;
	public String time;
	
	
	public Item(String number, String city, String sex, String time) {
		super();
		this.number = number;
		this.city = city;
		this.sex = sex;
		this.time = time;
	}

	@Override
	public String toString() {
		return "Item [number=" + number + ", city=" + city + ", sex=" + sex + ", time=" + time + "]";
	}
	
	
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值