java 重复判定在赋值问题
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;
}
}
Java code
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 展开
呵呵,简单啊,你自己判断一下就可以了。我们在放进列表的时候判断一下。
有点的注意,我把num 该为了int方便计算
代码入下:
public class FruitDate {
/** 水果种类 */
private String fruitKind;
/** 数量 */
private int num;//改为int
/**
* 水果种类的取得
* @return fruitKind 水果种类
*/
public String getFruitKind() {
return fruitKind;
}
/**
* 水果种类的设定
* @param fruitKind 水果种类
*/
public void setFruitKind(String fruitKind) {
this.fruitKind = fruitKind;
}
/**
* 数量的取得
* @return num 数量
*/
public int getNum() {
return num;
}
/**
* 数量的设定
* @param num 数量
*/
public void setNum(int num) {
this.num = num;
}
}
import java.util.ArrayList;
import java.util.List;
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("香蕉");
addFruit(listTemp,listData);
listData2.setFruitKind("桔子");
//不在直接放进去,而是调用我们自己写的方法
addFruit(listTemp,listData2);
listData3.setFruitKind("苹果");
addFruit(listTemp,listData3);
listData4.setFruitKind("桔子");
addFruit(listTemp,listData4);
listData5.setFruitKind("香蕉");
addFruit(listTemp,listData5);
listData6.setFruitKind("香蕉");
addFruit(listTemp,listData6);
for (int j=0; j < listTemp.size() ; j++ ) {
//输出水果名称和数量
System.out.println(listTemp.get(j).getFruitKind()+" num:"+listTemp.get(j).getNum());
}
}
//专门添加水果的方法
protected static void addFruit(List<FruitDate> listTemp, FruitDate fruit){
for(int i=0;i<listTemp.size();i++){
FruitDate aFruit=listTemp.get(i);
if(aFruit.getFruitKind().equals(fruit.getFruitKind())){
//如果水果已经存在,统计+1
listTemp.get(i).setNum(aFruit.getNum()+1);
return;
}
}
//不存在就把这个水果放进去,并把统计数设置为1
fruit.setNum(1);
listTemp.add(fruit);
}
}
怎么样,很简单的吧。O(∩_∩)O~
/**
* 水果种类数量管理类
*
*/
class FruitManager {
private static FruitManager instance;
/**
* 水果种类列表<种类名称,数量>
*/
private Map<String, Integer> fruits = new HashMap<String, Integer>();
/**
* 私有化构造方法
*/
private FruitManager(){
}
/**
* 取得管理类的实例
* @return 管理类实例
*/
public static FruitManager getInstance(){
if (null == instance) {
instance = new FruitManager();
}
return instance;
}
/**
* 将某个种类的水果计数加一
* @param name 种类名称
*/
public void addFruit(String name){
if (fruits.containsKey(name)) {
int count = fruits.get(name);
fruits.put(name, ++count);
} else {
fruits.put(name, 1);
}
}
/**
* 得到水果种类的列表
* @return
*/
public Map<String, Integer> getFruits() {
return fruits;
}
}
数据其实是从DB里取的在这里只是为了方便看
那么我还是不太清楚你的具体问题
你这样写每加入一个水果就要维护多个变量,实现起来不好,不如写一个类来管理所有的水果。
/**
2012-04-22
1