Java集合框架

Java集合框架

Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。

Java集合中成员很丰富,常用的集合有ArrayList,HashMap,HashSet等。线程安全的有Vector,HashTable。线程不安全的有LinkedList,TreeMap,ArrayList,HashMap等等。
`
Java的容器类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。通过Collection与Map接口导出其他子接口及实现类的框架示意图如下图所示:
在这里插入图片描述

ArrayList

ArrayList基于数组实现,可以通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。它允许任何符合规则的元素插入甚至包括null。

LinkedList

LinkedList同样实现List接口,与ArrayList不同的是,LinkedList是基于双向链表实现的,可以在任何位置进行高效地插入和移除操作。

public class ArrayList{    
	public static void main(String[] args) {
			// TODO Auto-generated method stub
			//1.生成ArrayList对象
			ArrayList list=new ArrayList();
			//2.向集合中添加元素
			list.add("aabb");
			list.add("abc");
			list.add(1, "aaa");//在下标是1的位置插入元素"aaa",元素"abc"向后移动
			list.add("abc");
			System.out.println(list.get(0));
			System.out.println(list.get(1));
			System.out.println(list.get(2));
			//遍历
			System.out.println("--------------------------------------");
			for(int i=0;i<list.size();i++) {//list.size()集合中的元素个数
				System.out.println(list.get(i));
			}
			System.out.println("-------------------------");
			//增强for循环遍历
			for(Object obj:list) {
				System.out.println(obj);
			}
		}
public class LinkedList{     
    public static void main(String[] args) {
        // 1、创建多个狗狗对象
        Dog ououDog = new Dog("欧欧", "雪娜瑞");
        Dog yayaDog = new Dog("亚亚", "拉布拉多");
        Dog meimeiDog = new Dog("美美", "雪娜瑞");
        Dog feifeiDog = new Dog("菲菲", "拉布拉多");
        // 2、创建LinkedList集合对象并把多个狗狗对象放入其中
        LinkedList dogs = new LinkedList();
        dogs.add(ououDog);
        dogs.add(yayaDog);
        dogs.addLast(meimeiDog);
        dogs.addFirst(feifeiDog);
        // 3、查看集合中第一条狗狗的昵称
        Dog dogFirst=(Dog)dogs.getFirst();
        System.out.println("第一条狗狗的昵称是"+dogFirst.getName()+"。" );
        // 4、查看集合中最后一条狗狗的昵称
        Dog dogLast=(Dog)dogs.getLast();
        System.out.println("最后一条狗狗的昵称是"+dogLast.getName()+"。" );
        // 5、删除集合中第一个狗狗和最后一个狗狗          
        dogs.removeFirst();
        dogs.removeLast();          
        // 6、显示删除部分狗狗后集合中各条狗狗信息
        System.out.println("\n删除部分狗狗后还有" + dogs.size() + "条狗狗。");
        System.out.println("分别是:");          
        for (int i = 0; i < dogs.size(); i++) {
            Dog dog = (Dog) dogs.get(i);
            System.out.println(dog.getName() + "\t" + dog.getStrain());
        }
    }
}

HashMap

HashMap是基于哈希表的Map接口的实现,是以key-value存储形式存在,即主要用来存储键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为Null。另外,HashMap中的映射不是有序的,即HashMap无序。

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class HashMapDemo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map map=new HashMap();
		Person p1=new Person("zhangsan",21);
		Person p2=new Person("lisi",11);
		Person p3=new Person("wangwu",24);
		map.put(p1.getName(), p1);
		map.put(p2.getName(), p2);
		map.put(p3.getName(), p3);
		//遍历所有的键
		Iterator it=map.keySet().iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//遍历所有的值
		Iterator values=map.values().iterator();
		while(values.hasNext()){
			System.out.println(values.next());
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值