public static void main(String[] args) {
//初始化数据
List<String> allList = new ArrayList<String>();
allListadd("学生A、语文、90分、第一学期");
allListadd("学生B、语文、80分、第一学期");
allListadd("学生A、英语、90分、第一学期");
allListadd("学生A、数学、90分、第一学期");
allListadd("学生B、英语、80分、第一学期");
allListadd("学生A、语文、90分、第二学期");
allListadd("学生B、数学、80分、第一学期");
allListadd("学生B、英语、80分、第二学期");
allListadd("学生A、数学、90分、第二学期");
allListadd("学生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 = stringsplit("、");
stuContained = false;
subjContained = false;
termContained = false;
if(stuListsize()<=0) stuContained = false;
else{
for (String string2 : stuList) {
if(string2equals(strs[0])){
stuContained = true;
break;
}
}
}
if(!stuContained)
stuListadd(strs[0]);
if(subjListsize()<=0) subjContained = false;
else{
for (String string2 : subjList) {
if(string2equals(strs[1])){
subjContained = true;
break;
}
}
}
if(!subjContained)
subjListadd(strs[1]);
if(termListsize()<=0) termContained = false;
else{
for (String string2 : termList) {
if(string2equals(strs[3])){
termContained = true;
break;
}
}
}
if(!termContained)
termListadd(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 = string4split("、");
if(temps[0]equals(string) && temps[1]equals(string3)&& temps[3]equals(string2)){
temp+= temps[2];
score += IntegerparseInt(temps[2]substring(0, temps[2]length()-1));
}
}
}
String[] temp2 = tempsplit(",");
temp += ",总分:" + score +"分";
resultsadd(temp);
temp ="姓名:"+string;
}
}
//输出结果
for (String string : results) {
Systemoutprintln(string);
}
}
只是一种方案,又很多情况不确定,如果list中的数据可以作为javabean设置会方便些,如果数据是在数据库中的,那么使用sql语句会方便很多(上面的做法实际上是模拟了sql语句)
jdk14:
for (int i=0;i<listsize();i++){
Object o = listget(i);
}
jdk15以上,比方list里面存放String
for (String s:list){
//对s做 *** 作
}
|--List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引,
|-- ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步
|-- LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快)
|-- Vector:底层是数组数据结构 线程同步(数组长度是可变的百分之百延长)(无论查询还是增删都很慢,被ArrayList替代了)
List a1 = new ArrayList();
a1add("java01");
a1add("java02");
a1add("java03");
a1add("java04");
获取java03就是a1get(2);因为下标是从0开始。
以上就是关于java中,获取一个list,将list里的数据按不通条件进行分类全部的内容,包括:java中,获取一个list,将list里的数据按不通条件进行分类、java中如何将list中值提取出来(急)、java 如何得到list中指定行数的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)