Java 如何通过从其他列表中读取一个值来筛选对象列表
我们有一些数据以json的形式从UI接收并转换为Java对象,在此基础上我们必须过滤主列表并将该数据对象存储在filterList中Java 如何通过从其他列表中读取一个值来筛选对象列表,java,collections,Java,Collections,我们有一些数据以json的形式从UI接收并转换为Java对象,在此基础上我们必须过滤主列表并将该数据对象存储在filterList中 public class DataObject implements Serializable{ private String mTaskName; private long mCaseNumber; ...... } //Fetching data list from session List<DataObject> listData =(Li
public class DataObject implements Serializable{
private String mTaskName;
private long mCaseNumber;
......
}
//Fetching data list from session
List<DataObject> listData =(List<DataObject>)session.getAttribute("DATA_LIST");
//Variable to hold filtered data
List<DataObject> filteredData = new ArrayList<DataObject>();
public class FilterCriteria
{
private String filterName;
private String[] value;
.....
}
公共类数据对象实现可序列化{
私有字符串mTaskName;
私人长麦卡森编号;
......
}
//从会话获取数据列表
List listData=(List)session.getAttribute(“数据列表”);
//用于保存过滤数据的变量
List filteredData=new ArrayList();
公共级过滤标准
{
私有字符串过滤器名称;
私有字符串[]值;
.....
}
例如,如果我们将filterName作为任务名和值[“value1”、“value2”],并且还使用值[“2323232”、“45544”]启用了第二个筛选器案例编号。我们必须在主列表listData上应用此逻辑,并将过滤后的记录存储在filteredData中。如何实现这一点?Appache Commons Collections CollectionUtils.filter呢?
如果您想按行或按列执行,我希望您也能以这种方式实现它
import java.util.*;
public class HelloWorld{
public static void main(String []args)
{
List<ArrayList<String>> two_dimension=new ArrayList<ArrayList<String>>();
//Suppose you want to make nxm dimensional list. Then you can set the values as
int rows=4;
int columns=5;
for(int i=0;i<rows;i++)
{
two_dimension.add(new ArrayList<String>());
for(int j=0;j<columns;j++)
{
two_dimension.get(i).add("element"+i+j);
}
}
//to accesss your element
boolean row=true; // lets decide to traverse by row
if(row==true)
{
for(int i=0;i<rows;i++)
{
for(int j=0;j<columns;j++)
{
System.out.println(two_dimension.get(i).get(j));
}
}
}
else
{
for(int i=0;i<columns;i++)
{
for(int j=0;j<rows;j++)
{
System.out.println(two_dimension.get(j).get(i));
}
}
}
}
}
import java.util.*;
公共类HelloWorld{
公共静态void main(字符串[]args)
{
列出二维=新ArrayList();
//假设您想要制作nxm维度列表,那么您可以将这些值设置为
int行=4;
int列=5;
对于(int i=0;i如何处理值[]其中包含我们需要筛选并存储在另一个列表中的所有值。我需要在循环中运行吗?寻找最佳实践我怀疑除了迭代数组元素之外还有其他解决方案。好的,谢谢,这意味着我必须循环筛选值数组并使用此谓词…是的,这是一种方法。但请注意,其他元素将从原始列表中删除,因此如果您需要保留它们,您必须首先克隆列表。从另一个角度来看,此方法只是candy,您可以使用附加的for-each循环自行实现,并将匹配的元素复制到新列表中。这将更有效。