java 重复判定在赋值问题

loong9527 2012-04-21 01:44:44

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
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-04-21
  • 打赏
  • 举报
回复
排序的自己写吧,写给比较器就好了。
loong9527 2012-04-21
  • 打赏
  • 举报
回复

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
安特矮油 2012-04-21
  • 打赏
  • 举报
回复
我觉得其他重复的可能不用再打印了会比较好一些。

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());
}

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧