- 贝贝
-
//Platform.java
public class Platform {
/**
* @author lusong
*/
private String brandName;
private String model;
public Platform(String bString,String mString) {
brandName=bString;
model=mString;
}
public String getBrandName() {
return brandName;
}
public String getModel(){
return model;
}
}
//ShiXian.java,其中的getList()方法返回你要求的东东
//不知道合不合你的胃口
import java.util.*;
public class ShiXian {
ArrayList<Platform> PlatformList=new ArrayList<Platform>();
//用于包含型号的名称,用于验证重复,在getLIst方法中使用,因为内置类不能访问方法的局部变量所有在此定义方法中的变量
List<String> arrayList=new ArrayList<String>();
public ShiXian() {
//向该集合中添加成员,型号之间用逗号隔开
PlatformList.add(new Platform("诺基亚","7210,5530,2120"));
PlatformList.add(new Platform("摩托罗拉","V3,L6"));
PlatformList.add(new Platform("诺基亚","N70,N73,N95"));
PlatformList.add(new Platform("摩托罗拉","V4,L7"));
PlatformList.add(new Platform("摩托罗","V4,L7"));
PlatformList.add(new Platform("摩","V4,L7"));
PlatformList.add(new Platform("摩","V4,L7"));
//你可以随意添加成员,注意型号之间用逗号隔开
}
//你的要求是返回一个包含所有品牌的List,每个List项为一个包含型号的List
public List<ArrayList<String>> getList(){
//用于最终返回结果的List
List<ArrayList<String>> list=new ArrayList<ArrayList<String>>(){
//重写toString()方法,便于显示手机名称
@Override
public String toString() {
int i=0;
// TODO Auto-generated method stub
StringBuilder stringBuilder=new StringBuilder();
for (Iterator iterator = this.iterator(); iterator.hasNext();) {
ArrayList<String> arrayList1 = (ArrayList<String>) iterator.next();
stringBuilder.append(arrayList.get(i));
stringBuilder.append("的型号为:");
i=i+1;
stringBuilder.append(arrayList1.toString());
}
return stringBuilder.toString();
}
};
for (Iterator iterator = PlatformList.iterator(); iterator.hasNext();) {
Platform platform=(Platform)iterator.next();
if (arrayList.contains(platform.getBrandName())) {
//该手机已经存在,只用添加型号,并且验证是否重复
String[] strings=platform.getModel().split(",");
ArrayList<String> arrayList3=list.get(arrayList.indexOf(platform.getBrandName()));
for (int i = 0; i < strings.length; i++) {
if (!arrayList3.contains(strings[i])) {
arrayList3.add(strings[i]);
}
}
}
else {
//该手机还不存在,要添加该手机,并添加型号
arrayList.add(platform.getBrandName());
ArrayList<String> arrayList3=new ArrayList<String>();
String[] strings=platform.getModel().split(",");
for (int i = 0; i < strings.length; i++) {
arrayList3.add(strings[i]);
}
list.add(arrayList3);
}
}
return list;
}
public static void main(String[] args) {
System.out.println(new ShiXian().getList());
}
}
- 可可
-
迭代啊
- S笔记
-
最简单的方法,就是List<List<Platform>>
好的方法,就是flyweight模式加工厂模式。
工厂模式可以使用动态枚举类型实现。当然flyweght模式也可以使用动态枚举类型。
java不支持enum的扩展,你可以google,dynamic enum 或者extension enum,在jdk的project coin的maillist中也有讨论
- 黑桃云
-
import java.util.*;
public class A
{
public static void main(String[] args)
{
ArrayList<Platform> NOKIA=new ArrayList<Platform>();
NOKIA.add(new Platform("诺基亚","N70,N80,N97"));
ArrayList<Platform> KONKA=new ArrayList<Platform>();
KONKA.add(new Platform("康佳","p90,p12,p500"));
ArrayList<ArrayList<Platform>> two=new ArrayList<ArrayList<Platform>>();
two.add(NOKIA);
two.add(KONKA);
Iterator it=two.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class Platform
{
private String brandName;// 手机品牌名称
private String models;// 系列下所有的手机型号
public Platform(String brandName,String models)
{
this.brandName=brandName;
this.models=models;
}
public String toString()
{
return "手机品牌:"+this.brandName+"-->手机型号:"+this.models;
}
}