package other; public class FruitDate { /** 水果种类 */
private String fruitKind;
/** 数量 */
private String num; /**
 * 水果种类的取得
 * @return fruitKind 水果种类
 */
public String getFruitKind() {
return fruitKind;
}
/**
 * 水果种类的设定
 * @param fruitKind 水果种类
 */
public void setFruitKind(String fruitKind) {
this.fruitKind = fruitKind;
}
/**
 * 数量的取得
 * @return num 数量
 */
public String getNum() {
return num;
}
/**
 * 数量的设定
 * @param num 数量
 */
public void setNum(String num) {
this.num = num;
}
}package justDoit;import java.util.ArrayList;
import java.util.List;import other.FruitDate;public class Test { public static void main(String[] args) { inputList();
} public static void inputList() { List<FruitDate> listTemp =new ArrayList <FruitDate>(); FruitDate listData = new FruitDate();
FruitDate listData2 = new FruitDate();
FruitDate listData3 = new FruitDate();
FruitDate listData4 = new FruitDate();
FruitDate listData5 = new FruitDate();
FruitDate listData6 = new FruitDate(); listData.setFruitKind("香蕉");
listTemp.add(listData);
listData2.setFruitKind("桔子");
listTemp.add(listData2);
listData3.setFruitKind("苹果");
listTemp.add(listData3);
listData4.setFruitKind("桔子");
listTemp.add(listData4);
listData5.setFruitKind("香蕉");
listTemp.add(listData5);
listData6.setFruitKind("香蕉");
listTemp.add(listData6); for (int j=0; j < listTemp.size() ; j++ ) { System.out.println(listTemp.get(j).getFruitKind());
}
}
}
List内容
香蕉
桔子
苹果
桔子
香蕉
香蕉
怎么实现将相同的水果种类个数相加放到num里
结果
香蕉 3
桔子 2
苹果 1
桔子 2
香蕉 3
香蕉 3

解决方案 »

  1.   

    我觉得其他重复的可能不用再打印了会比较好一些。 Map<String, String> counts = new HashMap<String, String>();
    for (int j = 0; j < listTemp.size(); j++) {
    String name = listTemp.get(j).getFruitKind();
    if(counts.get(name) == null){
    counts.put(name, "1");
    }else{
    counts.put(name, String.valueOf(Integer.parseInt(counts.get(name)) + 1));
    }
    }
    Set<Entry<String, String>> set = counts.entrySet();
    Iterator<Entry<String, String>> iterator = set.iterator();
    while(iterator.hasNext()){
    Entry<String, String> entry = iterator.next();
    System.out.println(entry.getKey() + " " + entry.getValue());
    }
      

  2.   


    package other; public class FruitDate { /** 水果种类 */
    private String fruitKind;
    /** 数量 */
    private String num;
    /** 行数 */
    private String lineCnt; /**
     * 行数的取得
     * @return fruitKind 行数
     */
    public String getLineCnt() {
    return lineCnt;
    }
    /**
     * 行数的设定
     * @param fruitKind 行数
     */
    public void setLineCnt(String lineCnt) {
    this.lineCnt = lineCnt;
    }
    /**
     * 水果种类的取得
     * @return fruitKind 水果种类
     */
    public String getFruitKind() {
    return fruitKind;
    }
    /**
     * 水果种类的设定
     * @param fruitKind 水果种类
     */
    public void setFruitKind(String fruitKind) {
    this.fruitKind = fruitKind;
    }
    /**
     * 数量的取得
     * @return num 数量
     */
    public String getNum() {
    return num;
    }
    /**
     * 数量的设定
     * @param num 数量
     */
    public void setNum(String num) {
    this.num = num;
    }
    }
    加个行数能用Collections.sort()方法排序做么
    不是想打印出来
    结果还是放在 List<FruitDate >里
    只是存的结果样式是下面的样子:
    香蕉 3
    桔子 2
    苹果 1
    桔子 2
    香蕉 3
    香蕉 3