黑马程序员技术交流社区

标题: 关于LinkedList中的问题求解! [打印本页]

作者: FFF    时间: 2013-11-11 14:17
标题: 关于LinkedList中的问题求解!
  1. import java.util.LinkedList;
  2. class person{
  3.         private String name;
  4.         public person(String name){
  5.                 this.name=name;
  6.         }
  7.         public String toString(){//这里的toString所代表的是什么?
  8.                 return name;
  9.         }
  10. }
  11. public class Temp11_11 {
  12.         public static void main(String[] args){
  13.                 LinkedList<person>p = new LinkedList<person>();//这里的<person>是什么意思?
  14.                 //增加
  15.                 p.add(new person("java01"));
  16.                 p.add(new person("Java02"));
  17.                 p.add(new person("Java03"));
  18.                 p.add(new person("java04"));
  19.                 p.add(new person("java01"));
  20.                 //删除
  21.                 p.remove(1);
  22.                 p.add(new person("java05"));
  23.                 sop(p);
  24.                 //修改
  25.                 person s = new person("Java07");
  26.                 p.set(2,s);
  27.                 sop(p);
  28.                 //查找
  29.                 sop(p.indexOf(s));
  30.         }
  31.         static void sop(Object a){
  32.                 System.out.println(a);
  33.         }
  34. }
复制代码
代码中的;toString所代表的是什么?<person>是什么意思??

作者: 青年黨衛軍    时间: 2013-11-11 14:35
<1>toString()方法:它是Object类中定义的方法,因为因为每个类都直接或间接地继承自Object,因此每个类都有toString()方法。tostring()方法一般是在输出的时候使用的。比如说system.out.print方法的时候会自动调类的tostring方法,默认的话直接返回类的地址:
  1. 该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hashCode())
复制代码
你如果想要按照你自己预期的方式输出类的内容的话需要重写这个方法,并且在方法体中重写输出方式来达到要求。这就是你Person类中为什么要重写toString方法的原因。因为你要返回的是Person对象的姓名。而不是一堆代码。


<2>至于<Person>,因为LinkedList是一个元素集合,里面可以存放各种类型的元素,如果你的集合中只涉及到了操作一种类型的元素,那么为了保证元素类型的唯一性,就需要在集合上加一个限定标志,表明只有属于Person类的对象才可以存入该集合,否则会报异常或者错误。这样就省去了集合中元素操作的很多麻烦,也使你的集合变得简单清晰已操作。建议你参看以下毕老师基础视频中泛型的那一节,里面有详细的叙述和实例讲解。

作者: 狼王    时间: 2013-11-11 16:18
你打算在哪个版块当版主?

作者: FFF    时间: 2013-11-11 16:33
狼王 发表于 2013-11-11 16:18
你打算在哪个版块当版主?

那里需要我,我就去那里。都可以的。不过,这里的这个版的人气好像比较少一点!
作者: FFF    时间: 2013-11-11 16:33
狼王 发表于 2013-11-11 16:18
你打算在哪个版块当版主?

那里需要我,我就去那里。都可以的。不过,这里的这个版的人气好像比较少一点!
作者: 狼王    时间: 2013-11-11 17:38
FFF 发表于 2013-11-11 16:33
那里需要我,我就去那里。都可以的。不过,这里的这个版的人气好像比较少一点! ...

对的,云版块没有安卓的火




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2