集合Collection和Map

集合


前言

本文介绍了集合


以下是本篇文章正文内容

一、什么是集合?

在Java程序中,我们有数组的概念,数组可以存放一组数据,但是,由于数组的长度是固定的,在使用的时候就会造成资源的浪费。这时候集合就出现了,集合可以动态改变数组的长度。Java的集合类都处于Java.util包中,包含了大量的集合接口,集合接口的实现类
java集合主要分为Collection和Map

1.迭代器

Iterator:迭代器,将集合的元素进行一个迭代。

2.Set

set集合不支持重复元素,是无序的

代码如下(示例):

public class SetDemo {
	
	public static void main(String[] args) {
		
		Set set = new HashSet();
		
		set.add("你好");
		set.add("世界");
		set.add("hello");
		set.add("world");
		/**
		 *iterator迭代器,进行迭代,输出 
		 */
		Iterator it = set.iterator();
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}

输出结果
set输出结果

常用的方法还有
isEmpty()为空返回true
add()添加元素
remove()删除元素
clear()清空元素


3.List

List:有序的,长度可变,元素可以重复,可以通过下标找到集合中的元素。

ArrayList和LinkedList都属于Collection的接口

ArrayList和LinkedList都是List的实现类

public static void main(String[] args) {
		
		List list = new ArrayList();
		
		list.add("你好");
		list.add("世界");
		list.add("hello");
		list.add("world");
		
		System.out.println(list);
		//也可以使用迭代器
		Iterator it = list.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
	}

1.ArrayList,Vector和LinkedList的区别

Arraylist,Vector的底层是由数组实现的,LinkedList底层是由双向循环链表实现的,由底层就可以看出他们的性能
ArrayList,Vector插入速度较慢,但查询速度较快,而LinkedList可以很快捷的被插入或查询,但查询速度不快。再者由于Vector加了线程安全锁,所以ArrayList 的运行效率高于 Vector。

4.map

map不属于collection的接口

1.HashMap

以键值对的形式存在(key:value)
key重复,下一个值会覆盖上一个值
map以KeySet进行迭代

public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put(1, "你好");
		map.put(2, "世界");
		//用keySet()取键值
		Set set = map.keySet();
		
		Iterator it = set.iterator();
		
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//用values()取value值
		//Collection coll = map.values();
		//Iterator it1 = coll.iterator();
		//while (it1.hasNext()) {
		//System.out.println(it1.next());
		//			
		//}
		//也可以用entrySet(),拿到map的key和值value
		//Set set = map.entrySet();
		//
		//
		
	}

5.泛型

指集合的类型,规定这个集合存放什么数据类型,这个集合就只能存放这一种数据类型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值