巧用重写toString的方法,输出格式的问题留给java帮我解决吧~
来源:互联网 发布:人工智能电影天堂 编辑:程序博客网 时间:2024/04/30 05:40
用动态数组ArrayList实现上面效果。看似简单其实也的确不难,不过有些细节可能会被忽略。
我刚看到的时候也没太在意每组数据间的小箭头,一股脑的想到去用动态二维数组来实现,因此写下了下面的代码,不过还好因此知道了用ArrayLIst模拟实现动态数组的方法,不过就是觉得有点麻烦,实际上不知道能不能派上用场。
import java.util.ArrayList;
public class MailAddressTest
{
public static void main(String [] argv)
{
ArrayList mailObjx=new ArrayList();
{
ArrayList mailObjy=new ArrayList();
mailObjy.add("Name : ");
mailObjy.add("Street : ");
mailObjy.add("City : ");
mailObjy.add("Country : ");
mailObjy.add("PinCode : ");
mailObjx.add(mailObjy);
}
{
ArrayList mailObjy=new ArrayList();
mailObjy.add("David Clarke");
mailObjy.add("10 Downing Street");
mailObjy.add("LondonState:London");
mailObjy.add("United Kingdom");
mailObjy.add("110022");
mailObjx.add(mailObjy);
}
{
ArrayList mailObjy=new ArrayList();
mailObjy.add("John Lenon");
mailObjy.add("12 Park Avenue");
mailObjy.add("Californiastate:California");
mailObjy.add("USA");
mailObjy.add("210033");
mailObjx.add(mailObjy);
}
{
ArrayList mailObjy=new ArrayList();
mailObjy.add("Stefii Graff");
mailObjy.add("14 Maple Lane");
mailObjy.add("MahomaState:Sydney");
mailObjy.add("Australia");
mailObjy.add("412033");
mailObjx.add(mailObjy);
}
System.out.println("*****************************");
System.out.println("客户电子邮件地址");
System.out.println("*****************************/n[/n");
for(int i=1;i<mailObjx.size();i++)
{
for(int j=0;j<((ArrayList)mailObjx.get(i)).size();j++)
{
System.out.print(((ArrayList)mailObjx.get(0)).get(j));
System.out.println(((ArrayList)mailObjx.get(i)).get(j));
}
System.out.println();
}
System.out.println("]");
}
}
虽然看起来有点累,不过最关键其实是最后几句的ArrayList的嵌套而已,不过这样做不能做到题目要求的效果,主要是那几个可恶的小箭头做的怪。
要显示箭头和两边的小框其实是直接显示ArrayList对象toString后java自动加上去的分隔符,如果先要保留并且按照自己希望的格式显示的话就需要修改被加入到ArrayList的元素对象的toString方法以达到目的。正确的代码如下:
import java.util.ArrayList;
public class MailAddressTest2
{
ArrayList mailObj;
MailAddressTest2()
{
mailObj=new ArrayList();
}
void add()
{
mailObj.add(new Info("David Clarke","10 Downing Street","LondonState : London","United Kingdom","110022"));
mailObj.add(new Info("John Lenon","12 Park Avenue","CaliforniaState : California","USA","210033"));
mailObj.add(new Info("Stefii Graff","14 Maple Lane","MahomaState : Sydney","Australia","412033"));
}
void disp()
{
System.out.println(mailObj);
}
}
class Info
{
String name,street,city,country,pinCode;
Info(String name,String street,String city,String country,String pinCode)
{
this.name=name;
this.street=street;
this.city=city;
this.country=country;
this.pinCode=pinCode;
}
public String toString()
{
return "/nName : "+this.name+"/nStreet : "+this.street+
"/nCity : "+this.city+"/nCountry : "+this.country+
"/nPinCode : "+this.pinCode+"/n";
}
}
class Test
{
public static void main(String [] argv)
{
MailAddressTest2 obj=new MailAddressTest2();
obj.add();
obj.disp();
}
}
在这里需要修改的是自定义的Info类的toString的方法,然后直接把ArrayList的对象mailObj输出就行了。
自我总结:应该学会利用java的override功能,重写一些已有的方法,让别人的代码为自己服务,不过想偷懒也不是一件容易的事情啊~
- 巧用重写toString的方法,输出格式的问题留给java帮我解决吧~
- Java toString equals hashCode 方法的重写
- Java重写ToString()方法的意义
- java toString()方法以及重写的意义
- Java重写ToString()方法的意义
- 重写Bean的toString()方法
- 重写toString方法的好处
- 重写LinkedHashMap的toString方法
- 帮我解决一个VB的问题
- 哪位用CSDNBLOG的朋友帮我解决个问题
- Java 重写tostring方法
- Java重写toString方法
- java:toString方法重写
- 重写java类的toString()方法, 安卓开发
- java困惑我1个多礼拜的问题,希望大家能帮我解决!
- Android中重写toString()方法解决列表显示问题(为什么要重写toString?)
- 重写toString方法需要注意的
- 关于toString方法的重写工具ToStringBuilder
- Torque地图编辑器里利用fxShapeReplicator批量种树和植被(Use fxShapeReplicator speed your work)
- 世界杯比赛播报
- 我自己的梦想
- 阿根廷公布世界杯23人名单以及点评
- 图解电脑内外接口和连线
- 巧用重写toString的方法,输出格式的问题留给java帮我解决吧~
- 经济灾难VS发展机遇 3G对中国意味着什么
- ASP.NET直接下载一个文件,而不是在IE中打开它
- VC6中编译选项/Gd /Gr /Gz与_stdcall, _cdcel, _fastcall
- SP公司新人培训教案
- WAP 2.0 VS WEB 2.0
- 一些学习小体悟!!
- 有时候我也想醉一回
- 流行减肥的原因。。。。