List接口,Set接口,Map接口学习总结

 

 /**

* List接口,Set接口,Map接口学习总结

* 1.List(有序的,允许重复的):(三个常用的实现类) →                    ArrayList(不同步) 、 LinkedList(不同步) 、 Vector(同步)

* ①ArrayList:

* <1>.实现了所有的可选列表操作,并允许包括null在内的                          所有元素;

* 此类大致上等同于Vector类,除了此类不是同步的;

*  <2>.此类调用add()方法为数组添加元素,可以是任何类型的                         元素。

*  eg. ArrayList list = new ArrayList();

*      list.add("aaa");

*      list.add(123);

*      list.add(new String[]{"aa","bb"});

*      list.add(true);

*      

*  <3>.常用的方法有:

*  get(index) &rarr; 具体查找某个元素;

*  size() &rarr; 查看其包括几个元素;

*  clear() &rarr; 清空所有元素;

*  contains("aa") &rarr; 是否包括某个元素;

*  indexOf() &rarr; 返回首次出现的索引;无时返回-1;

*  isEmpty() &rarr; 有没有元素;

*  remove(index) &rarr; 删除某元素;

*  lastIndexOf() &rarr; 最后一次出现某元素的索引;

*  

*  <4>.★迭代

*  //迭代方法一:

*  for(int i=0; i<list.size(); i++) {

*  System.out.println(list.get(i));

*  }

*   

*  //迭代方法二:

*  for(Object obj : list) {

*  System.out.println(obj);

*  }     

*      

*  //迭代方法三:

*  //说明:迭代器默认指的位置是第一个元素的上方;

*  //hasNext()方法:如果仍有元素可迭代,则返回true

*  //next()方法: 返回迭代的下一个元素

*  

*  Iterator iter = list.iterator();

*  while(iter.hasNext()) {

*  System.out.println(iter.next());

*  }

*      

*     

*  2.Set接口:

*  

*  <1>.他的父接口为:Collection,Iterable; (无序的,不能重                          复的),最多包含一个null元素;

*  

*  <2>.其常用是实现类为:HashSet

*  eg. HashSet set = new HashSet();

*  

*  set.add("kk");

*      set.clear();

*      set.contains("kk");

*      set.remove("kk"); &rarr; ☆ 只能根据对象remove;没有根                            据索引的remove;

*      set.size();

*      

*  <3>.★迭代 (说明:因为set集合中无get()方法,所以只有2                       种迭代方法)

*      

*  //迭代方法一:

*  for(Object obj : set) {

*  String str = (String)obj;//因为set集合中添加的都是                      字符串,所以要进行强制类型转换;

*      System.out.println(str);

*  }

*  

*  //迭代方法二:

*  Iterator iter = new Iterator();

*  while(iter.hasNext()) {

*  String str = (String)iter.next();

*  System.out.println(str);

*  }    

*      

*  3.Map接口:与Collection无关;

*  <1>.它的实现类为键值对;

*  将键映射到值的对象。一个映射不能包含重复的键;每个                         键最多只能映射一个值,值是可以重复的。

*  

*  <2>.常用的实现类为:HashMap(不同步),HashTable(同步)

*      

*  <3>.HashMap与HashTable的区别★

*  

*  ①HashTable是基于陈旧的dictionary类;HashMap是                                 Java1.2引进的Map接口的一个实现类。

*  ②HashTable是线程安全的,也就是同步的;HashMap是线                            程不安全的,不同步的;

*  

*  <4>.常用的方法:

*  ①put() : 将指定的值与此映射进行关联。

*  ②get() : 返回指定键所映射的值;如果此映射不包含该键的                                映射关系,则返回null;

*  

*  eg:  HashMap map = new HashMap();

*  map.put(1,"value1");

*  map.put(2,"value2");

*      map.put(3,"value3");

*      

*  <5>.★迭代:

*  //迭代方法一:

*  //说明1:keySet()方法返回映射中包含的键的set视图

*    Set keys = map.keySet();    

*    for(Object key : keys) {

*    System.out.println(key + "&rarr;" + map.get(key));

*    } 

*    

*  //迭代方法二:

*  //说明:entrySet()方法返回此映射中包含的映射关系的Set                             视图;

*  //Entry(=java.util.Map.Entry)保存的是一对映射关系,通                       过getKey()方法可以获得键,通过getValue()可以获得值。

*  Set set = map.entrySet();

*  for(Object obj : set) {

*  Entry en = (Entry)obj;

*  System.out.println(en.getKey() + "&rarr;" +                                       en.getValue());

*  }    

*      

*      

*/

//************************泛型集合的迭代                                              **********************************

/**

* 1.ArrayList

*/

ArrayList<String> list = new ArrayList<String>();

//迭代方法一:

for(int i=0; i<list.size(); i++) {

String str = list.get(i);

System.out.println(str);

}

//迭代方法二:

for(String str : list) {

System.out.println(str);

}

//迭代方法三:

Iterator<String> iter = list.iterator();

while(iter.hasNext()) {

String str = iter.next();

System.out.println(str);

}

/**

* 2.HashSet

*/

HashSet<String> set = new HashSet<String>();

//迭代方法一:

for(String str : set) {

System.out.println(str);

}

//迭代方法二:

Iterator<String> ite = set.iterator();

while(iter.hasNext()) {

String str = ite.next();

System.out.println(str);

}

/**

* 3.HashMap

*/

HashMap<String, String> map = new HashMap<String, String>();

Set<Entry<String,String>> se = map.entrySet();

for (Entry<String,String> en : se) {

System.out.println(en.getKey() + "&rarr;" +                                   en.getValue());

 


原理:http://zhangshixi.iteye.com/blog/672697 

http://blog.csdn.net/vking_wang/article/details/14166593 

http://zhangshixi.iteye.com/blog/674856 

http://zhangshixi.iteye.com/blog/673143 

你可能感兴趣的:(list,map,set)