探索——【java集合类】

java.util包提供了一些集合类 ,这些集合类又被称为容器,提到容器不难想到数组,集合类与数组不同之处 在于数组长度固定 ,而集合类长度可变的,数组用来存放数据,集合类用来存放对象引用,常用的集合类有list,set,map,list和set继承了Collection接口,各个接口还提供了不同的实现类,看一下关系图
探索——【java集合类】

要掌握集合类这个图非常重要,这一个图概括了一个类,三个接口,六个知识点,所以将集合类总结为一三六,Collection接口是接口层次中的根接口。构成collection的单位被称之为元素,Collection接口往往不能直接使用但是该接口提供了添加元素删除元素管理数据的方法,List和set接口都继承了Collection接口,所以方法对于List和set接口是通用的,至于有人要问为什么要把Collection写成接口,不做解释这是sun公司规定,如有深究者可以找sun公司理论,collection接口定义了存取一组对象的方法其子类接口为set和list分别定义了存储方式,

1:set里面的元素没有顺序且不可重复。

2:list里面的元素有顺序且可以重复。

3:map接口定义了键(key)-值(value)映射对的方法。
 在set,list,map下面又定义了很多不同的类,像ArrayList,HashSet等等,先不管它们怎么用,只要看见list就应该明白这是一个装有序的可以重复的元素,看见set就知道这是无序的不可重复的,这里有人就问了,那还要那么多类干嘛,这就好比你上学装书一样,用书包装可以,塑料袋装着也行,只要你愿意,用桶装上书也行,所以不同的装书的方式有不同的用途,有它自身的优缺点但是共同点是他对外的接口是统一的,前面提到过泛型,现在看一个泛型与集合类的部分用法

import  java.util.*;
public class ArrayLisTest  {
	public static void main(String args[]){
		
		//实例化list对象
		ArrayList<String> list = new ArrayList<String>();
		 list.add("张三");
		 list.add("李四");
		 list.add("王麻子");
		 //list有下标可以用for循环遍历数组
		 for(int i = 0 ;i<list.size();i++){
			 System.out.println(list);
			 
			 
		 }
		 //创建迭代器,用迭代方法遍历元素
		 Iterator<String> iter =list.iterator();
                 //用while判断是否有下一个元素如果有就输出下一个元素
		 while(iter.hasNext()){

			 String str = iter.next();
			 System.out.println(str);
			 
		 }
		 //用增强的for循环foreach遍历
                 //括号内冒号左边表示返回值类型,右边表示要遍历的对象
		 for(String s:list){
			 System.out.print(s);
		 }
		
	}

	
		
	}

	

 通过以上例子可以了解泛型与集合的用法还了解了集合中的遍历数组方法Iterator,为了加深印象,用三种例子说明遍历方法,重点说明后两种遍历方法,乍一听,迭代好像很高大上,其实也没什么,为了便于理解读者可将其理解为遍历容器中的元素,foreach其实可以理解为简化的Iterator,for循环接触比较多就不过多解释了,希望大家可以熟练掌握这三种遍历方法,至于map和set读者可以根据情况自己尝试,就不做说明了

 

你可能感兴趣的:(java集合)