--------List之我见:先贴码了。-------------------
public class ListTest {
public static void main(String[] args) {
LinkedListTest();
}
/*ArrayList: 方法都差不多,ArrayList 是基于数组。当容量满了时,增加原容量的一半。线程不同步。
查找循环遍历比较方便,但插入,删除等都要移动数据,一般数据量小的时候使用与ArrayList。*/
/*LinkedList 实际为链表 ,其内存空间不连续,不受Array 性能的限制,一个节包含了当前节点的数据和下一个节点的信息。所以插入或者删除的时候,不用大量移动数据。
当插入或者删除频繁时,选择LinkedList更好些,遍历的时候比较忙*/
private static void LinkedListTest() {
LinkedList linklist=new LinkedList();
linklist.add("aa");
linklist.add("bb");
linklist.add("cc");
linklist.add("dd");
for (int i = 0; i < linklist.size(); i++) {
System.out.println(linklist.get(i));
}
}
//都实现了List 接口。 ArrayList 默认大小是0 而 Vector 默认大小是10
//Vector 基于数组,向量的大小大于其容量时,容量自动增加的量,增长原来的一倍。它是线程同步的。
}
--------------Set之我见:
------------------
public class SetTest {
//都实现set 接口
public static void main(String[] args) {
treeSetTest2();
}
//set特点:不可以将相同的对象放入到set 容器中。若放的是自定义的对象,则对象需要重写hashCode方法
public static void hashSetTest() {
HashSet hs=new HashSet();
hs.add(1);
hs.add(3);
hs.add(2);
hs.add(3);//测试放入相同的对象,则覆盖
for (Object object : hs) {
System.out.println(object);
}
}
//hashSet 存入自定义对象学生类,要重写hashCode()方法和equals()方法
public static void setObject(){
HashSet<Student> hs=new HashSet<Student>();
hs.add(new Student(1,"aa"));
hs.add(new Student(2,"bb"));
hs.add(new Student(3,"cc"));
hs.add(new Student(2,"bb"));//测试放入相同的对象
for (Object object : hs) {
System.out.println(object);
}
}
public static void treeSetTest1(){
TreeSet ts=new TreeSet();
ts.add(1);
ts.add(2);
ts.add(3);
ts.add(2);//测试放入相同的对象
for (Object object : ts) {
System.out.println(object);
}
}
//treeSet 存放的对象一定要是可排序类型的,自定义的类可以实现 comparable 接口
public static void treeSetTest2(){
TreeSet<Student> ts=new TreeSet<Student>();
ts.add(new Student(1,"aa"));
ts.add(new Student(2,"bb"));
ts.add(new Student(3,"cc"));
ts.add(new Student(2,"bb"));//测试放入相同的对象
for (Object object : ts) {
System.out.println(object);
}
}
}
--------------------Map之我见:
------------------
public class MapTest {
//map容易的特点:键可以出现null。键不能够重复,值可以重复 (也就是一对多)。键若重复了,则原来的值会被覆盖。
//map 接口没有继承Iterable 接口,遍历的时候用keySet
public static void main(String[] args) {
hashMapTest();
}
// 若出现了多个键,则以最后一个键值对存储,前面的会被覆盖。hashMap也实现了哈希算法。
public static void hashMapTest() {
HashMap<Integer, String> hm = new HashMap<Integer, String>();
hm.put(1, "aa");
hm.put(2, "bb");
hm.put(3, "cc");
hm.put(4, "cc");
hm.put(null, "dd");
for (Integer o : hm.keySet()) {
System.out.println(hm.get(o));
}
}
//treeMap 会按照键的顺序来存放的。
}