A. 关于java的容器类 list,map等的toString()方法
我今天也遇到了同样的问题,翻了下api搞懂了一点。
List是一个接口,你使版用List肯定没法直接权new一个对象出来,常见的是new一个ArrayList类的对象,向上转型赋给List接口的对象。那所以在调用List接口对象的toString方法也就是在调用ArrayList的toString方法了。
我查了jdk的api,发现所有实现了List接口的类,只有CopyOnWriteArrayList这个类不是同时继承自AbstractCollection类的。其他实现了List接口的类都同时继承自AbstractCollection类,所以它们都有AbstractCollection类的toString方法。
而且,CopyOnWriteArrayList类虽然没有继承AbstractCollection类,但是自己重写了toString方法。
所以,使用到List对象的地方肯定是一个上转型对象,否则无法实例化,而所有的实现List接口的类都有一个重写后的toString方法。因此,即使没看到List接口有对toString的定义,它的对象却有着可读性强的toString方法。
B. java把一个list中的内容添加到另一个list中
在JAVA中,想要把一个list中的内容添加至另一个list中,有两种方法:
采用循环的方法。通过循环第一个ArrayList,然后通过每循环一次的方式,将值赋值给另一个ArrayList。具体代码实现如下:
2.集合是Java API所提供的一系列类,可以用于动态存放多个对象。集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。集合中不能放基本数据类型,但可以放基本数据类型的包装类。 集合类全部支持泛型,是一种数据安全的用法。java列表是集合的一种,并且列表中的元素是有序的,且允许重复。java列表又称为java list。
C. java里 list顺序是固定的吗,是有序的吗
list是有序的,是以数组的存储方式进行存储.也就是说数组什么样它就什么样,唯一的区别就版是,它没有固定大小权. 且list的检索效率比较高,不过要频繁的对这个容器里的元素进行更新就不要用它了,用linkedlist比较好.
顺序放进去是不会乱的,举个例子,一个list,第一个放进去是1,第二个放进去是2:
List<Integer> numList=new ArrayList<>();
numList.add(1);
numList.add(2);
当你取第一个时numList.get(0);(下标从0开始)
打印它出来还是:1
List 接口下ArrayList 特点是: 插入数据 有序且可重复 适合查找多增删少。
D. java中list的使用方法
LIST是个容器接口,可以理解为动态数组,传统数组必须定义好数组的个数才可以使用,而容器对象无须定义好数组下标总数,用add()方法即可添加新的成员对象,他可以添加的仅仅只能为对象,不能添加基本数据类型,容器还对应get(),remove()方法来获取和删除数据成员