/**

* 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) → 具体查找某个元素;

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

*  clear() → 清空所有元素;

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

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

*  isEmpty() → 有没有元素;

*  remove(index) → 删除某元素;

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

*  

*  <4>.★迭代

*  //迭代方法一:

*  for(int i=0; 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"); → ☆ 只能根据对象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 + "→" + 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() + "→" +                                       en.getValue());

*  }    

*      

*      

*/

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

/**

* 1.ArrayList

*/

ArrayList list = new ArrayList();

//迭代方法一:

for(int i=0; i

String str = list.get(i);

System.out.println(str);

}

//迭代方法二:

for(String str : list) {

System.out.println(str);

}

//迭代方法三:

Iterator iter = list.iterator();

while(iter.hasNext()) {

String str = iter.next();

System.out.println(str);

}

/**

* 2.HashSet

*/

HashSet set = new HashSet();

//迭代方法一:

for(String str : set) {

System.out.println(str);

}

//迭代方法二:

Iterator ite = set.iterator();

while(iter.hasNext()) {

String str = ite.next();

System.out.println(str);

}

/**

* 3.HashMap

*/

HashMap map = new HashMap();

Set> se = map.entrySet();

for (Entry en : se) {

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

 

List集合的分割:

package com.book.admin.test;

import java.util.ArrayList;
import java.util.List;

import com.google.common.collect.Lists;

public class TestList {

	public static void main(String[] args) {
		
		List list = new ArrayList();
		list.add(1L);
		list.add(2L);
		list.add(3L);
		list.add(4L);
		list.add(5L);
		list.add(6L);
		list.add(7L);
		list.add(8L);
		list.add(9L);
		
		test(list,3); //每组显示3个
		test(list, 6); //每组显示6个
		test(list, 16);//每组显示16个
		
	}
	
	private static void test(List list,int size) {
		List> subSets = Lists.partition(list, size);
		System.out.println(" >>>>>>> " + subSets.toString());
	}
	
}

结果:

 >>>>>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

 >>>>>>> [[1, 2, 3, 4, 5, 6], [7, 8, 9]]

 >>>>>>> [[1, 2, 3, 4, 5, 6, 7, 8, 9]]


原理: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