集合可以
理解为在
内存中存放一组对象的容器,对象是数据的封装,而对象又构成了集合。在java中的集合框架是一种线性的数据结构,但是它分为两种,一种是物理结构,一种是逻辑结构。物理结构是一种连续存储的结构,比如说数组;而逻辑结构可以理解为在内存块中是不连续的,比如说链表,一个链表是分为两中内容的,一个是该链表所存储的数据,还有一个呢,那就是指向下一个链表的指针,通过指针而把表给连起来,称之为链表。数组其实也是可以完成像集合一样的存储的,但是数组存在一定的弊端,数组一旦创建,其大小,类型是固定的,在特定的情况下不能更方便的使用,因此,为了与数组互补,集合也就应运而生了。
       在java.util包中存在三种最重要的集合,其分别是list,set,map,它们各自有各自的特点,这三种都是
接口。其中list:1> list的实现类主要有ArrayList,Linkedlist及其Vector,list中存储的数据是有序的,而且也是可以重复的,也就是说list按照添加的顺序,依次的存储在list下标从小到大的位置。做一个简单的代码测试
  public 
class Test {
	public static void main(String[] args) {
		Test test = new Test();
                      test.testList();
                    public void testList(){//类
		//创建一个List对象
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(1);
		list.add(2);		
                       for(Object a:list){
			System.out.print(a+" ");
		}
		
	}
	此段代码的运行结果为:{1 1 2}
  反应了其有序可重复的特点。
          2>set同样是一个接口,它常用的实现类有Hashset,Treeset。set集合的存储特点可以说是和list完全相反的,它是一种无序而且不能重复的存储特点。同样的用代码做一个测试 public class Test {
	public static void main(String[] args) {
		Test test = new Test();
		test.testSet();
          public void testSet(){
		//创建Set对象
		Set<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(5);
		set.add(3);
		set.add(4);
		set.add(1);
		set.add(null);
		System.out.println(set);
		
		Iterator<Integer> it = set.iterator();
		while(it.
hasNext()){//判断有元素可迭代
			int i = it.next();
			System.out.print(i+" ");
                     }
		}
              }
	}     
     此段代码的运行结果是:{1 2 3 4 5}
      可以说明其无序不可重复的特点。
         3>最后则是map集合,map的实现类常用的有Hashmap,Hashtable和Treemap。
map与以上两者稍微的有点不同,它是一种映射关系,在map中,存储两种数据,表达为map<k,v>,而以上两者都只有一个数据,而且都是通过下标来访问的,map中k是不可以重复的,而v是可以重复的,进行一段代码测试
    public class Test{
    public static void main(String[] args){
         testmap test=new testmap();
          public void testMap(){
Map<Integer, String> map = new    HashMap<Integer,String>();
		map.put(1, "aaa");
		map.put(2, "bbb");
		map.put(3,"ccc");
		map.put(2, "ddd");
		
		System.out.println(map);
		//获取key集合(Set)
		Set<Integer> set = map.keySet();
		Iterator<Integer> it = set.iterator();
		while(it.hasNext()){
			int key = it.next();
			//通过key获取对应的value值
			String value = map.get(key);
		System.out.println("key="+key+"  value="+value);
		}
	     }	
	}
}
     此段代码的运行结果是:key=1 value=aaa;key=2 value=ddd;key=3 value=ccc。
   这三种集合各有其所试用的地方,对于像我这种初学者可以让整个代码简化,思路更清晰。
        二:获得各种数据存储方式长度的方法。
       数组:定义一个数组Array[];那么获得该数组长度的方法是使用其length方法。
       字符串: String st = "aaa";
		st.length();
                 这里的length是字符串的一种属性,而数组的length是一种方法。
        List:迭代或者直接通过下标输出,list.size()    
       set:迭代while(it.hasNext()){//判断有元素可迭代
			int i = it.next();
			System.out.print(i+" ");
                     }
        map:只能用迭代的方法,
                     //获取key集合(Set)
		Set<Integer> set = map.keySet();
		Iterator<Integer> it = set.iterator();
		while(it.hasNext()){
			int key = it.next();
			//通过key获取对应的value值
			String value = map.get(key);
		System.out.println("key="+key+"  value="+value);
		}
             map先是通过迭代器先得到key值,因为是一种一一对应的关系,所以用key值就可以得到value值了。