Java Web简明教程–Java篇[4]–常用容器

点此查看 所有教程、项目、源码导航

猫哥直接跳过了类、封装、继承,来讲容器。此处稍微提下需要掌握的,对于类,掌握下面这个最基本的就够了。

public class TypeName{//类名称
    //成员变量定义
    int i;
    string x;
    //成员函数定义
   public int add(){}
}

对于封装、继承甚至后面的接口、抽象类、内部类等Java语法,脱离了应用场景去学习是很飘渺的,所以在以后用到的时候再说明。在目前这个阶段,会定义类,然后实现类的对象,调用类的方法,可以了。

继续本篇的正题:常用容器。猫哥也不过多解释纷繁复杂的继承关系,简单把常用容器分类三类:List、Set、Map。

  • List是有序的元素集,常用的有ArrayList和LinkedList,其中ArrayList有点像数组,查询速度快,插入、删除速度慢。而LinkedList像链表,查询速度稍慢,插入、删除速度较快。List使用get(i)获取第i个元素(i就是顺序),使用add()添加元素。

  • Set是不包含重复元素的元素集。常用的有HashSet和TreeSet,HashSet性能好,比较常用。那还要TreeSet干哈呢,人家TreeSet能排序哦。

  • Map是key-value映射的元素集,也就是说Map中的每个元素包含两个部分,key表示元素的索引键,而value是该键对应的值。所以添加元素是put(key,value),获取元素是get(key),那key不存在get(key)就返回null了。
    常用的类是HashMap。

说白了,List、Set、Map是三种接口,而ArrayList、LinkedList、HashSet、TreeSet、HashMap等是接口的具体实现类。

其实List和Set还是很像的,都是单个元素的元素集,所以他俩其实都有一个最基本的接口即Collection,这个Collection接口的标准非常简单,就是Object的集合,可以包含很多个Object。OK,写一段详细的代码演示下:

import java.util.*;//容器类所在的包得导入进来

/**
 * 容器使用演示
 * @作者 猫哥
 * @编码时间 2016.12.27
 */
public class ContainerDemo {//定义了一个类,用来演示容器的使用

	public static void main(String[] args) {//这个方法是程序的入口
		System.out.println("开始比较ArrayList<String>和ArrayList");
		ArrayList<String> stringList=new ArrayList<String>();//这个ArrayList只能添加String类型元素
		ArrayList objectList=new ArrayList();//这是一个无类型说明的ArrayList,可以添加任意Object
		
		stringList.add("hello 101");//只能添加String类型的元素
		stringList.add("hello 102");
		System.out.println("遍历输出 stringList");
		for(int i=0;i<stringList.size();i++){
			System.out.println(stringList.get(i));
		}
		System.out.println("foreach输出 stringList 因为里面的元素都是统一的");
		for(String str:stringList){
			System.out.println(str);
		}
		
		objectList.add(103);//添加不同种类的元素,其实添加的是引用的值
		objectList.add("hello 103");
		System.out.println("遍历输出  objectList");
		for(int i=0;i<objectList.size();i++){
			System.out.println(objectList.get(i));
		}
		System.out.println("foreach输出 objectList ");
		for(Object obj:objectList){
			System.out.println(obj);
		}
		
		System.out.println("开始演示HashSet和TreeSet");
		HashSet hashSet=new HashSet();
		TreeSet treeSet=new TreeSet();
		hashSet.add("a");
		hashSet.add("b");
		hashSet.add("d");
		hashSet.add("c");
		hashSet.add("a");
		Iterator irhashSet=hashSet.iterator();//Iterator用于遍历
		System.out.println("输出可见a排除重复了,注意HashSet不保存存放时候的顺序");
		while(irhashSet.hasNext()) { 
			System.out.println(irhashSet.next());
		}
		treeSet.add("a");
		treeSet.add("b");
		treeSet.add("d");
		treeSet.add("c");
		treeSet.add("a");
		Iterator irTreeSet=treeSet.iterator();//Iterator用于遍历
		System.out.println("输出可见a排除重复了,TreeSet是有确定顺序的,一般是从小到达,从前到后");
		while(irTreeSet.hasNext()) { 
			System.out.println(irTreeSet.next());
		}

		HashMap hashMap=new HashMap();//key不可重复,value可以
		hashMap.put("学号001", "姓名张三");
		hashMap.put("学号002", "姓名李四");
		hashMap.put("学号003", "姓名张三");
		Iterator irHashMap = hashMap.keySet().iterator();//keySet()把hashMap中的key值整理为set
		while (irHashMap.hasNext()){
			Object key = irHashMap.next();//获取key
			Object val = hashMap.get(key);//获取对应value
			System.out.print(val);
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员大阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值