集合类概述

java.util包中提供了一些集合类,这些集合类也称为容器。说到容器又想到数组,但是集合类和数组的不同之处是:数组的长度是固定的,但是集合类的长度是可变的;数组用来存放基本类型的数据,集合存放对象的引用。
常用的集合类有List集合,Set集合,Map集合。
在这里插入图片描述
Collection接口
构成Collection的单位是元素。Collection接口通常不能直接使用,但是该接口提供了添加元素,删除元素,管理数据的方法。由于List接口与Set接口都继承了Collection接口,因此这些方法对List集合和Set集合是通用的。

常用的方法:

在这里插入图片描述
那么如何遍历集合中每一个元素呐?
通常遍历集合,都是通过迭代器来实现的(Iterator)在这里插入图片描述
注意的是:iterator的next方法返回的是Object。

List集合
List集合包括List接口以及List接口的所以实现类。List接口的所有实现类。List集合中的元素允许重复,各元素就是对象插入的顺序,类似Java可以通过索引来访问集合中的元素。

List接口继承了Collection接口,因此包含Collection中的所有方法,此外,List接口还定义了一下两个重要的方法。
get和set

List接口的实现类:主要常用的是:ArrayList,LinkedList。

1.ArrayList类实现了可变的数组,允许保存所有元素,包括null,并且可以根据索引位置对集合进行快速 访问;缺点是向指定的索引位置插入对象或删除对象的速度比较慢。
2.LinkedList类采用链表结构保存对象。与上面的正好相反。
在这里插入图片描述
注意:与数组相同,集合的索引也是从0开始的。
这是做的增删查
在这里插入图片描述

package test1;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;

public class List_Add_Delete {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Scanner in=new Scanner(System.in );
		System.out.println("-----------------------");
		System.out.println("1.增加"+"\t"+"2.删除"+"\n"+"3.查找"+"\t"+"4.遍历"+"\n"+"5.退出");
		System.out.println("-----------------------");
		//这是一个继承Collection的有序集合,List 与Set不相同
		List li=new ArrayList();
		
		//有3个
		for(int i=0;i<10;i++)
		{
			li.add(i);
		}

		System.out.println();
		boolean flag=true;
		int a,b,c;
		while(flag)
		{
			a=in.nextInt();
			if(a==1)
			{
				System.out.println("请输入添加元素:");
				b=in.nextInt();
				System.out.println("请输入添加位置:");
				c=in.nextInt();
				li.add(c, b);
				System.out.println(li);
			}
			if(a==2)
			{
				System.out.println("请输入删除数字:");
				int d=in.nextInt();
				li.remove(d);
				System.out.println(li);
			}
			if(a==3)
			{
				System.out.println("请输入查找的数字:");
				int e=in.nextInt();
				if(li.contains(e))
				{
					System.out.println("存在该数字");
				}
				else
				{
					System.out.println("不存在数字");
				}
			}
			if(a==4)
			{
				Iterator iter=li.iterator();
				while(iter.hasNext())
				{
					System.out.print(" "+iter.next());
				}
			}
			if(a==5)
			{
				System.exit(0);
			}
		}
	}

}

Set集合
Set集合中的对象不安特定的方式排序,只是简单地把对象加入集合中,但是Set集合中不能包含重复对象。
Set接口常用的实现类有HashSet类和TreeSet类
HashSet类是实现Set接口,它不保证Set的迭代顺序,特别是他不保证该顺序的不变,可以使用null
在这里插入图片描述
HashSet并没有保证其顺序不变。

TreeSet类实现的Set集合再遍历集合时按照自然顺序递增排序
但是存入TreeSet类实现的Set集合必须是西安Comparalble接口,该接口中的compareTo(Object o)
在这里插入图片描述
关于Map类参考:
https://blog.csdn.net/guoguozgw/article/details/99647657

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值