黑马程序员-集合总结02

[size=large][align=center]------- [url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流! ---------- [/align][/size]
[align=center][size=x-large]常见笔试题目汇总[/size][/align]
[b]1.Collection 和 Collections的区别。[/b]  
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

[b]2.List, Set, Map是否继承自Collection接口?[/b]
List,Set是,Map不是

[b]3.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?[/b]
不对,有相同的hash code。

[b]4.你所知道的集合类都有哪些?主要方法?[/b]
最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。

[b]5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。[/b]
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
/ /使用快速排序方法对a[ 0 :n- 1 ]排序
从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点
把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点
递归地使用快速排序方法对left 进行排序
递归地使用快速排序方法对right 进行排序
所得结果为l e f t + m i d d l e + r i g h t

[b]6.HashMap 和Hashtable 的区别[/b]
都属于Map 接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有分类或者排序。它允许一个null 键和多个null 值。Hashtable 类似于HashMap,但是不允许null 键和null 值。它也比HashMap 慢,因为它是同步的。

[b]7.Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用= =还是equals()? 它们有何区别?[/b]
Set 里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set 是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

[b]8.介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? [/b]

Collection
├List(以特定次序来持有元素,可有重复元素)
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set(无法拥有重复元素,内部排序)
Map(保存key-value值,value可多值)
├Hashtable
├HashMap
└WeakHashMap
Collections是针对集合类的一个帮助类
package com.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class TestCollection {
static String a="a";
static String g="q";
static String q="w";
static String w="g";
static String z="n";

public static void main(String args[]){
Collection<String> c=new HashSet<String>();
c.add(a);
c.add(g);
c.add(w);
c.add(z);
System.out.println(c);
Collection<String> d=new ArrayList<String>(c);
boolean b=c.contains("a");
System.out.println(b);

Iterator<String> iterator=c.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("---------1---------");

for(Iterator<String> i=c.iterator();i.hasNext();){
System.out.println(i.next());

}
System.out.println("---------2---------");




for(String word:c){
System.out.println(word);
}
System.out.println("---------3---------");
}


}

[size=large][align=center]------- [url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流! ----------   详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima/[/url][/align][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值