(面试题)ArrayList,HashSet以及HashMap(2019年10月23日)

1.看如下代码会输出什么

        Integer i1 = 120 ;
        Integer i2 = 120 ;
        Integer i3 = new Integer(120);
        Integer i4 = new Integer(120);
答: Integer 在类加载的时候会先在静态区中初始化好-128 127 之间的数值,如果在这个范围则直接重复使用,否则在堆中new一个Integer
     120:true    由于10在范围内,所以使用共用静态区中的Integer 
     1000:false   由于1000在范围外,所以在堆中重新new一个Integer

2.ArrayList可以有重复的元素吗?元素是有序的吗?
有重复的元素,元素是有序的

 3.ArrayList和Vector有什么区别

  ArrayList是线程不安全的,效率高

  Vector是线程安全的,效率低

4.有23个对象加入到HashSet中,初始化最小为多少

  23/0.75=30.66...<32=2^5

所以初始化32个最好,又不会扩容。也不会浪费空间

5.写一个迭代器

//        迭代器遍历
        Iterator<String> iterator =  set.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next()); 
        }

 

posted @ 2019-10-23 21:31  小星星i  阅读(243)  评论(0编辑  收藏  举报