java中,获取一个list,将list里的数据按不通条件进行分类

java中,获取一个list,将list里的数据按不通条件进行分类,第1张

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中指定行数的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9488722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存