集合类小结

集合类小结

一:集合的定义

在Java中,集合可以看成是一个容器。比如红色的衣服是一个集合,所有Java类的书也是一个集合。对于集合中的元素,我们可以很容易的取出来或者是按照一定的顺序放进去。Java中提供了不同的集合类,他们储存对象的方式各有不同,并且都提供了相应的方法供我们对集合里的元素进行操作。

二:集合类的分类

Collection接口是层次接口中的根接口,list和set继承了collection接口,各个接口还实现了不同的类。

1.Collection

方法:

add(E e)                             将指定的的对象加到该元素

remove(Objcet 0)               移除指定对象

isEmpty()                            判断当前集合是否为空,返回布尔值

size()                                  获取该集合中的元素,返回值为int型

iterator()                             返回collnection上的进行迭代的迭代器,用于便利集合中的元素

 

package com.test;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class connection {
	public static void main(String[] args) {		
		Collection<String> collection = new ArrayList<>();
		collection.add("刘备");
		collection.add("关羽");
		collection.add("张飞");
		int n = collection.size();
		System.out.println(n);
		collection.add("赵云");
		//collection.remove("刘备");
		Iterator<String> it = collection.iterator();//创建迭代器
		System.out.println(it.hasNext());//判断是否有下一个元素
		while(it.hasNext()){
			String str = it.next();//获取集合中的元素
			System.out.println(str);		
		}
	}

2.List集合

List集合包括List接口和List接口的所有实现类,List集合中的元素允许重复,各元素的顺序就是对象插入的顺序,类似于数组,可以通过索引访问集合中的元素。List接口继承了collection接口,因此包含了Collection的所有方法,此外还定义了两个重要的方法。

get(int index)                                       获得指定索引位置的元素

set(int index,Object object)                 将指定位置的对象修改为指定对象

两个实现类ArrayList和LinkedList

package com.test;
import java.util.ArrayList;
import java.util.Iterator;
public class List {
	public static void main(String[] args) {
                //java.util.List<String> list = new LinkedList<>();
		java.util.List<String> list = new ArrayList<>();
		list.add("a");//向集合中添加元素
		list.add("b");
		list.add("c");
		Iterator<String> it = list.iterator();//创建迭代器
		while(it.hasNext()){
			String str = it.next();
			System.out.println(str);
		}	
	}
}

ArrayList实现了可变数组,允许保存所有元素,包括null,可以根据索引位置对集合进行快速访问;缺点是根据索引的位置插入或者删除对象的速度较低。

LinkedList采用链表的形式保存对象。这种结构的优点是便于向集合中插入或者删除元素,但是对于随机访问元素效率却很低。

注意:数组和集合的元素都是从零开始。

2.Set集合

set集合的对象不按特点方式排序,只是简单的将对象放入集合中,但是Set集合中的元素不能重复,当重复添加相同的元素时,就会覆盖之前的元素。Set集合由Set接口和Set实现类组成,Set集合继承了collnection接口,所有包含了collnection接口的所有方法。

两个实现类HashSet和TreeSet

package com.test;
import java.lang.Character.Subset;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class SET{
	public static void main(String[] args){	
		//HashSet<String> set = new HashSet<>()
		TreeSet<String> set = new TreeSet<>();		
		set.add("a");
		set.add("e");
		set.add("b");
		set.add("c");
		set.add("c");
		set.add("d");	
		set.headSet("c");		
		Iterator<String> it = set.iterator();
		//it = set.subSet("a", "c").iterator();
		while(it.hasNext()){
			String set1 = it.next();
			System.out.println(set1);
		}	
	}
}

HashSet类实现了Set接口,他不保证元素的顺序。

TreeSet不仅实现了Set集合还实现了java.util.SortedSet接口,因此,TreeSet集合实现的Set类在遍历集合时按自然顺序递增,可以对对象进行排序。在此功能上,Tree还新增了一些方法。

TreeSet新增的方法

first()                      返回此对象的第一个元素。

last()                      返回此对象中的最后一个元素。

comparator            返回对此Set中的元素进行排序的比较器,如果此Set使用自然顺序,则返回null。

headSet(E toElement)        返回一个新的集合,新的集合时toElement之前的所有对象。

subSet(E fromElement,EfromElement)        返回一个新的集合,新的集合的对象时两个参数之间的对象。

tailElemen(E fromElement)        返回一个新的集合,新的集合是参数之后的所有的对象。

3.Map集合

Map集合没有继承Collnection接口,他是采用键值对存储数据,就好像是超市外面的自助存取柜子,一个人一个柜子,一个柜子一个一个对应的锁。Map不能包含相同的Key,一个Key对应一个value值。Map集合包括Map接口以及Map接口实现的所有实现类。

package com.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class MAP {
	public static void main(String[] args) {	
		//Map<String, String> map = new HashMap<String, String>();
		TreeMap<String,String> map = new TreeMap<>();
        map.put("1", "张三");
        map.put("3", "张四");
        map.put("2" ,"张五");
        map.put("4", "张六");
        map.put("5", "张七");
        map.put("6", "张八");
        map.put("7", "张八");   
        Set<String> set = map.keySet();//将Map集合的key值放在set集合中
        Iterator<String> it = set.iterator();
        while(it.hasNext()){
        	String id = it.next();//获取key
        	String name = map.get(id);//通过key值获取value
        	System.out.println(id+" "+name);
        }
	}
}

HashMap集合类在存储数据时没有顺序,但是他的添加和删除的映射关系效率更高,允许使用null键和null值,但是必须抱枕健的惟一性。

而TreeSet中的映射关系有一点的顺序,如果希望Map集合中的对象也存在一定的顺序,应该使用TreeMap类实现Map集合;不允许健对象是null

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值