Collection 与数组的区别是:长度是无限的,只能存放对像
Collection:list,Set:
list是有序可重复的,Set是无序不可重复的
Map 是键值 对,相当于python 中的字典
ArrayList 是直接查询方式,add(index,item)最坏复杂度是O(n),动态数组
ArrayList是顺序访问方式,从第一个依次查询,对应复杂度是O(1)
package learn.java.cn.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
public class Test01 {
public static void main(String [] args) {
List list=new ArrayList();
//Collection
//这里的List 是可以collection 的,但是collection 是没有与顺序有关的函数,因此不建义使用多态Collection
// ArrayList 底层实现时数组,所以是查询快,修改,删除慢,线程不安全,效率高
// Linkedlist:底层实现是链表,所以是查询慢,修改快,线程不安全,效率高
// vector 线程安全的 ,效率低
list.add("aaa");
//
list.add(new Date());
list.add(1234);//包装类将数字自动装箱为Interger类;
System.out.println(list.size());
System.out.println(list.isEmpty());
// list.remove("aaa");
list.remove(new Date());//不是同一对象,但也成功移出,原因是:与hashcode 和equals相关
System.out.println("********");
System.out.println(list.size());
List list2=new ArrayList();
list2.add("bbb");
list2.add("cccc");
list2.add(list);
System.out.println(list2.size());
//和顺序有关的
//list.get(0)是object类型的
String str=(String)list2.get(0);
System.out.println(str );
System.out.println(list2.get(2));
list2.set(1,"abcdef");
}
}