当前位置:编程学习 > JAVA >>

Java容器常用及常见问题小测试

[java]  
package rowsy.learn;  
  
import java.util.ArrayList;  
import java.util.Arrays;  
import java.util.Collections;  
import java.util.HashSet;  
import java.util.LinkedHashSet;  
import java.util.List;  
import java.util.Set;  
import java.util.TreeSet;  
  
/** 
 * 1.容器主要分为Collection和Map,Collection是一个坑一个元素,Map是一个坑一对元素(值和键) 
 *  
 * 2.泛型可以防止将不正确的类型放入容器中  
 *  
 * 3.几种常用Set的区别 
 * HashSet:获取元素最快,存储方式复杂  
 * TreeSet:按比较结果的升序排列元素 
 * LinkedHashSet:按插入的顺序排列元素  
 * 对于几种Map,区别于Set一样,唯一的差别是LinkedHashMap保留了HashMap的查询速度 
 *  
 * List的行为与equals()方法相关 
 *  
 * 相对于Iterator,ListIterator可以双向移动,还可以从某个元素出开始,ListIterator只能用于List类型 
 * Collection都实现了iterator()方法 
 **/  
  
class L1 {  
}  
  
class L11 extends L1 {  
}  
  
class L111 extends L11 {  
}  
  
class L112 extends L11 {  
}  
  
class L2 {  
}  
  
class L21 extends L2 {  
}  
  
class L22 extends L2 {  
}  
  
class Pet implements Comparable<Pet> {  
    private int age;  www.zzzyk.com
  
    public Pet(int age) {  
        this.age = age;  
    }  
  
    @Override  
    public int compareTo(Pet pet) {  
        if (this.age > pet.age) {  
            return 1;  
        } else if (this.age == pet.age) {  
            return 0;  
        } else {  
            return -1;  
        }  
    }  
  
}  
  
public class LearnCollection {  
  
    public static void main(String[] args) {  
        List<String> list = Arrays.asList("ronnie", "john", "mark");  
  
        // 1.Arrays.asList()转化来的list不可以改变大小,因为底层是数组  
        // list.add("trump");  
        // list.remove(1);  
        System.out.println(list);  
  
        List<L1> listL = Arrays.asList(new L1(), new L111(), new L11());  
  
        // 2.Arrays.asList对他所产生的类型做最理想的假设,例如L111和L112可转化为L11和L1,但它并不这么认为  
        // 编译器会说cannot convert from List<L11> to List<L1>  
        // listL = Arrays.asList(new L111(), new L112());  
  
        // 3.加上显示类型说明可以避免此类错误  
        listL = Arrays.<L1> asList(new L111(), new L112());  
  
        String[] names = { "ronnie", "john", "mark", "trump" };  
  
        // 证明几种Set中元素的排序方式是不同的  
        Set<String> hashSet = new HashSet<String>();  
        Set<String> linkedHashSet = new LinkedHashSet<String>();  
        Set<String> treeSet = new TreeSet<String>();  
  
        Collections.addAll(hashSet, names);  
        Collections.addAll(linkedHashSet, names);  
        Collections.addAll(treeSet, names);  
  
        System.out.println(hashSet);  
        System.out.println(linkedHashSet);  
        System.out.println(treeSet);  
  
        System.out.println("===============");  
        List<String> nameList = new ArrayList<>(Arrays.asList(names));  
        System.out.println(nameList);  
        nameList.clear();  
        System.out.println(nameList);  
  
        Pet pet1 = new Pet(12);  
        Pet pet2 = new Pet(14);  
        System.out.println((pet1.compareTo(pet2) > 0) ? "true" : "false");  
  
    }  
  
}  
 
输入结果如下:
 
[ronnie, john, mark]
[john, mark, trump, ronnie]
[ronnie, john, mark, trump]
[john, mark, ronnie, trump]
===============
[ronnie, john, mark, trump]
[]
false
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,