java中collection是啥?怎么理解?怎么使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中collection是啥?怎么理解?怎么使用?相关的知识,希望对你有一定的参考价值。

参考技术A Collection是一个超级接口,有很多实现这个接口的类,具体用的话,是用这些实现它的那些类,比如ArrayList等,ArrayList是比较常用的。
集合这个知识点在JAVA中还是比较重要的,而且内容也不是一两句能讲清楚的,建议去看看教程,或者API文档,里面有各个接口、类定义的具体方法,以及这些方法的使用方式。
ArrayList的一些使用:
List
list
=
new
ArrayList();
//创建一个ArrayList
list.add(这里存放要添加的元素);
//添加元素
list.get(int
index)
;
//返回此列表中指定位置上的元素。
list.remove(int
index);
//移除此列表中指定位置上的元素。
list.set(int
index,
E
element)
;
//
用指定的元素替代此列表中指定位置上的元素。
list.toArray()
;
//按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
Collection
也属于容器,容器的话,一般避免不了“增删改查”这四个操作!

Java中Collection元素打印的问题,图中两句话都打印[张三,李四],还有这里的toString()怎么理解

找到了,是AbstractCollection里的toString(),坟==+

第一个输出,调用的是System.out.println(Object),方法中的参数是Object,实际上你第一个输出等价于第二个输出.

println()方法默认回去调用Object的toString方法,如果你这个类没有重写toString()方法,那么就会调用Object的toString()方法,它默认打印的是一个16进制的数字,Object的toString()源码如下

public String toString() 
    return getClass().getName() + "@" + Integer.toHexString(hashCode());

你上面的Collection真实实例是ArrayList,所以会去调用ArrayList.toString()方法(已经由AbstractCollection提供了实现)

public String toString() 
    Iterator<E> it = iterator();
    if (! it.hasNext())
        return "[]";

    StringBuilder sb = new StringBuilder();
    sb.append('[');
    for (;;) 
        E e = it.next();
        sb.append(e == this ? "(this Collection)" : e);
        if (! it.hasNext())
            return sb.append(']').toString();
        sb.append(',').append(' ');
    

所以输出的结果就可以理解了.

如果觉得我的回答对你有帮助,可以关注简书 早晚程序员,或者 微信公众号 早晚程序员

参考技术A 其实第一句话底层调用的就是c.toString(),你可以查一下System.out.println(Object o)的源码追问

看了,长这样:
public void println(Object x)
String s = String.valueOf(x);
synchronized (this)
print(s);
newLine();

追答

对啊,String.valueOf(x)再进去看一下,应该返回的就是x.toString()

参考技术B toString()表示将数据转换为字符串形式,是所有对象中通用的方法。 参考技术C 打印的时候。c和c.toString()是一个意思。

以上是关于java中collection是啥?怎么理解?怎么使用?的主要内容,如果未能解决你的问题,请参考以下文章

Java中Collection元素打印的问题,图中两句话都打印[张三,李四],还有这里的toString()怎么理解

Java中代码点和代码单元是啥?怎么理解?举例说明下,它们之间有啥联系有啥区别?为啥代码点

hashset是无序的,list是有序的,请问这句话是啥意思,怎么理解

java中,变量副本是啥,在哪里存的啊,怎么查看?

JAVA中枚举是啥意思,怎么用

java中多态是啥意思?