導航:首頁 > 編程語言 > javalist條件查詢條件

javalist條件查詢條件

發布時間:2022-10-22 02:57:12

java怎麼實現多條件篩選

or (類型 i : list)
{
if (條件1 && 條件2){
System.out.println(i);
}
} 這個方法循環是可以的

❷ JAVA怎樣從一個對象集合裡面查找指定條件的對象

ArrayList底層使用數組實現的,只能先循環再判斷:
for(User user:users)
{
if(user.getName().equals("test"))
{
System.out.println("找到名字為test的User")
break;

}

}

❸ java怎樣判斷list是否有值

isEmpty()判斷有沒有元素以及list是否為null,參考下面代碼

if(list!=null&&!list.isEmpty()){
這個裡面取list中的值
}else{
做其他處理
}

上面代碼說明:根據if條件的判斷,如果list存在,會做「這個裡面取list中的值」的處理,如果list不存在或為空,那麼會做「做其他處理」處理

❹ 如何在java List中進行模糊查詢

這樣一個List,裡面存放的是多個Employee對象。然後我想對這個List進行按照Employee對象的名字進行模糊查詢。有什麼好的解決方案么?
比如我輸入的查詢條件為「wang」,那麼應該返回只包含employee1的List列表。
List list = new ArrayList();
Employee employee1 = new Employee();
employee1.setName("wangqiang");
employee1.setAge(30);
list.add(employee1);

❺ java多條件查詢問題

java多條件不定條件查詢
網站或各類管理系統都會用到搜索,會用到一個或多個不確定條件搜索,單條件搜索比較簡單,有時候會有多個條件共同查詢,如果系統中已經提供了相關的方法供你使用最好,像我做這老系統改版,需要添加搜索,就要自己寫了。開始也沒管那麼多,就是拼sql,但是後來發現要加搜索地方不少,總是這樣寫既增加了工作量,還要做很多重復工作,說不定以後還會做這樣的工作,所以還是寫一個比較通用的查詢方法。
package com.test;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.poi.hssf.record.formula.functions.T;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import com.ams.bo.webapi.dto.Agent;
public class MultiTaskSearch {

@Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Resource(name = "storeFrontDAO")

private Map search() {
String name="公司";
String email="@163";
String invoiceTitle="公司";
int sign=1;
String at="2012-04-26";
Map<String, Object> map=new LinkedHashMap<String, Object>();//保持添加順序
// Map<String, Object> map=new HashMap<String, Object>();//無固定順序
map.put("name like", name);
map.put("email like", email);
map.put("invoiceTitle like", invoiceTitle);
map.put("sign =", sign);
map.put("addtime>=", at);
return map;
}

public <T> List<T> dbSearch(Class typeClass,Map<String, Object> map,String orderby) {
String paths[] = { "ams-servlet.xml" };
ApplicationContext ctx = new (paths);
jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");

List<T> TList=null;
String tablename = typeClass.getName().substring(
typeClass.getName().lastIndexOf(".") + 1);
StringBuffer sql=new StringBuffer("select * from ");
sql.append(tablename);
if (map.size()!=0) {
sql.append(" t where 1=1");//後面只需拼接and條件
}
Set<Entry<String, Object>> set=map.entrySet();
Iterator iterator=set.iterator();
for (int i = 0; i < set.size(); i++) {
Map.Entry mapEntry=(Entry) iterator.next();
if (!"".equals(mapEntry.getValue().toString())) {

//模糊匹配
if (mapEntry.getKey().toString().contains("like")) {
// sql.append(" and t."+mapEntry.getKey()+" "+mapEntry.getValue()+" ");
sql.append(" and t."+mapEntry.getKey()+" '%"+mapEntry.getValue()+"%'");
//精確匹配
}else {
// sql.append(" and t."+mapEntry.getKey()+" '%"+mapEntry.getValue()+"%'");
sql.append(" and t."+mapEntry.getKey()+" "+mapEntry.getValue()+" ");
}
}
}
if (null!=orderby&&!"".equals(orderby)) {
sql.append(orderby);
}
System.out.println("SQL:"+sql.toString());
TList=jdbcTemplate.query(sql.toString(),new Object[] {}, new BeanPropertyRowMapper<T> (typeClass));

return TList;
}
public static void main(String[] args) {
MultiTaskSearch mt=new MultiTaskSearch();
Map map=mt.search();
String orderby=" order by addTime desc";
List<Agent> agents=mt.dbSearch(Agent.class, map,orderby);
for (Agent agent : agents) {
System.out.println(agent.getName());
}
System.out.println("****************"+agents.size());

}
}
或者可以用拼sql的方法實現
使用union關鍵字可以在一個文本框內搜索出多個條件的數據
select t1.* from
(
select * from agent where name like '"2%'
union
select * from agent where email like '"2%'
union
select * from agent where ContactPerson like '"2%'
) t1
這種查詢結果是所有的集合,也可以把union換成or

❻ java中,獲取一個list,將list里的數據按不通條件進行分類

public static void main(String[] args) {
//初始化數據
List<String> allList = new ArrayList<String>();
allList.add("學生A、語文、90分、第一學期");
allList.add("學生B、語文、80分、第一學期");
allList.add("學生A、英語、90分、第一學期");
allList.add("學生A、數學、90分、第一學期");
allList.add("學生B、英語、80分、第一學期");
allList.add("學生A、語文、90分、第二學期");
allList.add("學生B、數學、80分、第一學期");
allList.add("學生B、英語、80分、第二學期");
allList.add("學生A、數學、90分、第二學期");
allList.add("學生B、語文、80分、第二學期");
//定義姓名、學期、科目 數組
List<String> stuList = new ArrayList<String>();
List<String> subjList = new ArrayList<String>();
List<String> termList = new ArrayList<String>();
boolean stuContained = false;
boolean subjContained = false;
boolean termContained = false;
//從allList中 載入相上述三個類別,如果固定的話,可以手動指定
for (String string : allList) {
String[] strs = string.split("、");
stuContained = false;
subjContained = false;
termContained = false;
if(stuList.size()<=0) stuContained = false;
else{
for (String string2 : stuList) {
if(string2.equals(strs[0])){
stuContained = true;
break;
}
}
}
if(!stuContained)
stuList.add(strs[0]);
if(subjList.size()<=0) subjContained = false;
else{
for (String string2 : subjList) {
if(string2.equals(strs[1])){
subjContained = true;
break;
}
}
}
if(!subjContained)
subjList.add(strs[1]);
if(termList.size()<=0) termContained = false;
else{
for (String string2 : termList) {
if(string2.equals(strs[3])){
termContained = true;
break;
}
}
}
if(!termContained)
termList.add(strs[3]);
}
//構建結果數組
List<String> results = new ArrayList<String>();
String temp = "";
for (String string : stuList) {
temp ="姓名:"+string;
for (String string2 : termList) {
temp += ",學期:"+string2;
int score = 0;
for (String string3 : subjList) {
temp+= ","+string3+":";
for (String string4 : allList) {
String[] temps = string4.split("、");
if(temps[0].equals(string) && temps[1].equals(string3)&& temps[3].equals(string2)){
temp+= temps[2];
score += Integer.parseInt(temps[2].substring(0, temps[2].length()-1));
}
}
}
String[] temp2 = temp.split(",");
temp += ",總分:" + score +"分";
results.add(temp);
temp ="姓名:"+string;
}
}
//輸出結果
for (String string : results) {
System.out.println(string);
}
}

只是一種方案,又很多情況不確定,如果list中的數據可以作為javabean設置會方便些,如果數據是在資料庫中的,那麼使用sql語句會方便很多(上面的做法實際上是模擬了sql語句)

❼ java怎麼像sql的where條件那樣處理list裡面的數據

public static void main(String[] args){
vo vo1 = new vo("張三",12,"武漢");
vo vo2 = new vo("李四",12,"武漢");
vo vo3 = new vo("王五",12,"北京");
List<vo> list = Arrays.asList(vo1,vo2,vo3);

//條件
vo vo4 = new vo("",null,"武漢");

if(vo4.getName() != null && !"".equals(vo4.getName())){
list = list.stream().filter(vo -> vo.getName().equals(vo4.getName()))
.collect(Collectors.toList());
}
if(vo4.getAge() != null){
list = list.stream().filter(vo -> vo.getAge().equals(vo4.getAge()))
.collect(Collectors.toList());
}
if(vo4.getCity() != null && !"".equals(vo4.getCity())){
list = list.stream().filter(vo -> vo.getCity().equals(vo4.getCity()))
.collect(Collectors.toList());
}

list.stream().forEach(vo -> {
System.out.println(vo);
});
}


❽ java 用返回的list去查詢資料庫,返回list

分析你的邏輯應該如下:
1、查詢表1中符合條件的信息,獲取一個結果集合1;
2、基於結果集合1循環,檢索表2,獲取結果集合2。
如此,如果表1、表2間存在直接關聯關系(即直接使用結果集合1中的部分信息作為表2查詢的條件),那麼完全可以在後台將兩張表關聯查詢,這樣避免了通過java進行循環,在大數量級情況下會嚴重佔用內存。
如果表1,表2間沒有直接的關聯關系(即通過循環表1,判斷其中條件後按照其它的特定對照值去查詢表2),那麼仍然建議使用後台表關聯查詢,及將表1查詢的結果集按照不同的條件獲取的值轉換成對應的映射值後作為一個基準集合,然後將這個集合與表2關聯查詢即可。具體的sql語句,得根據你使用的資料庫和具體場景去編寫。

總之,此類情況,完全可以交由資料庫搞定,如果使用你現在的邏輯(即查詢表1,循環結果集1,然後查詢表2,獲取結果集2),雖然原則上沒有錯,但會增加很多內存開銷,在大數據量級的情況下,非常容易出現內存溢出的異常,並不作為合理的編碼方式。

❾ java中,獲取一個list,將list里的數據按不通條件進行分類

你查詢的結果是的list裡面每個記錄應該是 一個Map 或 是一個類(如果有定義的話) 那麼你 先新建一個List 再遍歷結果list 每條記錄 姓名和學期一致的記錄放到一個 新Map中,在加到新的List裡面 這樣就形成你要的數據結構了

❿ java中,如何查詢一個list並得到list裡面子集合的一條數據。

List list = new ArrayList() ; //你的list
Map map = new HashMap(); //用map存起來新的分組後數據
int k = 0;
for(int i = 0;i<list.size();i+=100){
List newlist = list.subList(i,i+99);
map.put(k, newlist);
k++;

}

閱讀全文

與javalist條件查詢條件相關的資料

熱點內容
皓強工具解壓步驟 瀏覽:690
部隊抗洪搶險命令範文 瀏覽:888
歐姆龍plc編程軟體使用教程 瀏覽:594
ai文件pdf 瀏覽:911
騰訊雲伺服器掛載混合雲 瀏覽:758
智能小車用什麼單片機 瀏覽:463
java怎麼給窗口關閉 瀏覽:940
列舉51單片機的定址方式 瀏覽:706
剪輯app怎麼寫長篇文字 瀏覽:400
app專屬流量過月租怎麼不更新 瀏覽:654
王者程序員都有誰 瀏覽:76
給牛換腳掌解壓 瀏覽:387
圍棋有多少種演算法 瀏覽:602
unity資源包在哪個文件夾 瀏覽:704
阿里雲伺服器遠程鏈接不成功 瀏覽:482
文件系統pdf 瀏覽:767
原神安卓區服什麼意思 瀏覽:38
貝殼app怎麼線上發布 瀏覽:161
如何挑選安卓系統機頂盒 瀏覽:55
安卓快充使用有什麼注意事項 瀏覽:911