3 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String[]> resultList = new ArrayList<String[]>();
List<String[]> list = new ArrayList<String[]>();
String[][] str = { { "阿迪達(dá)斯", "運(yùn)動(dòng)鞋", "2" }, { "阿迪達(dá)斯", "運(yùn)動(dòng)服", "3" },
{ "阿迪達(dá)斯", "跑鞋", "4" }, { "耐克", "包", "5" },
{ "耐克", "運(yùn)動(dòng)褲", "6" }, { "銳步", "包", "1" }, { "銳步", "運(yùn)動(dòng)褲", "6" } };
for (int i = 0; i < str.length; i++) {
list.add(str[i]);
}
int count = Integer.parseInt(list.get(0)[2]);
resultList.add(list.get(0));
for (int i = 0; i < list.size() - 1; i++) {
if (list.get(i)[0] == list.get(i + 1)[0]) {
count += Integer.parseInt(list.get(i + 1)[2]);
resultList.add(list.get(i + 1));
} else {
String[] temp = new String[3];
temp[0] = "合計(jì)";
temp[1] = "";
temp[2] = String.valueOf(count);
resultList.add(temp);
resultList.add(list.get(i + 1));
count = Integer.parseInt(list.get(i + 1)[2]);
}
}
String[] temp = new String[3];
temp[0] = "合計(jì)";
temp[1] = "";
temp[2] = String.valueOf(count);
resultList.add(temp);
}
}
僅供參考

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
這個(gè)有個(gè)高效的方法,就遍歷一遍list就可以了。
配合Map
用一個(gè)域模型類 T 來(lái)描述你的產(chǎn)品,用一個(gè)boolean kinsmanship(T t)來(lái)做品牌匹配,然后用域模型的 品牌字段做Map 的key, 一個(gè)List做value 因?yàn)檫@個(gè)list中需要存儲(chǔ)不同類型的數(shù)據(jù),不要使用泛型就可以了,你可以在list的第0個(gè)位置存放一個(gè)list,這個(gè)list里面存放所有的域模型 第一個(gè)位置存放統(tǒng)計(jì)之后總計(jì)值。
思路就差不多了,感覺(jué)還是比較清晰的。
遍歷一遍就可以統(tǒng)計(jì)出所有了。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
阿迪達(dá)斯 運(yùn)動(dòng)鞋 2
耐克 運(yùn)動(dòng)褲 6
按此格式定義一個(gè)class
class Goods
{
String brand;
String category;
int stock;
}
把相應(yīng)的object按照brand的不同分別放在不同的list里面,
再用不同的brand作為key,將list放到map中
遍歷的時(shí)候,可以根據(jù)不同的brand取出相應(yīng)的list,遍歷出list中的goods,同時(shí)累計(jì)該brand下的每個(gè)goods的stock,即為該brand的合計(jì)數(shù)量
添加回答
舉報(bào)