java中的三大集合入门笔记(简单实用)

一、为什么使用集合框架

如图:
在这里插入图片描述
集合的好处:
集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合适用于不同的场合。

二、Java集合主要分为以下3种类型

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
1.List: 三有产品:有顺序,有下标,有重复
2.Set: 三无产品:无顺序,无下标,无重复
3.Map: 键值对:key-value 通过键可以找到值
提示:
List和Set实现于 Collection 接口
List还有两个实现类 ArrayList LinkedList
Set也有两个实现类 HashSet TreeSet
Map也有两个实现类 HashMap TreeMap
如图:
在这里插入图片描述

三、ArrayList和LinkedList

1.ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高

2.LinkedList采用链表存储方式。插入、删除元素时效率比较高

一、ArrayList介绍

3.使用ArrayList存储元素 如图:
在这里插入图片描述
4.List接口还提供的remove():移除、contains():是否包含
的方法

在这里插入图片描述
5.List接口方法有很多,这里就不都演示了,它的常用方法
如下图:

在这里插入图片描述
以下是代码演示部分

package cn.jbit.exec;

import java.util.ArrayList;
import java.util.List;


/**
 * 使用ArryList存储和处理企鹅信息。
 * @author 丿林
 */
public class Test1 {
	public static void main(String[] args) {

		// 1、创建多个企鹅对象
		Penguin ououPenguin = new Penguin("欧欧", "Q仔");
		Penguin yayaPenguin = new Penguin("亚亚", "Q妹");
		Penguin meimeiPenguin = new Penguin("美美", "Q妹");
		Penguin feifeiPenguin = new Penguin("菲菲", "Q妹");

		// 2、创建ArrayList集合对象并把多个企鹅对象放入其中
		List penList = new ArrayList();
		penList.add(ououPenguin);
		penList.add(yayaPenguin);
		penList.add(meimeiPenguin);
		penList.add(2, feifeiPenguin); // 添加feifeiPenguin到指定位置

		// 3、输出集合中企鹅的数量
		System.out.println("共计有" + penList.size() + "只企鹅。");

		// 4、通过遍历集合显示各只企鹅信息
		System.out.println("分别是:");
		for (int i = 0; i < penList.size(); i++) {
			Penguin dog = (Penguin) penList.get(i);
			System.out.println(dog.getName() + "\t"	
					+ dog.getSex());
		}
	
		// 5、删除集合中第一个企鹅和feifeiPenguin企鹅
		penList.remove(penList.size()-1);
		penList.remove(feifeiPenguin);

		// 6、显示删除后集合中各只企鹅信息
		System.out.println("\n删除之后还有" + penList.size() + "只企鹅。");
		System.out.println("分别是:");
		for (int i = 0; i < penList.size(); i++) {
			Penguin dog = (Penguin) penList.get(i);
			System.out.println(dog.getName() + "\t" + dog.getSex());
		}
		//7、判断集合中是否包含指定企鹅信息
		if(penList.contains(meimeiPenguin))
			System.out.println("\n集合中包含美美的信息");
		else
			System.out.println("\n集合中不包含美美的信息");
	}
	
}

二、LinkedList介绍
1.LinkedList集合类
插入、删除操作频繁时,可使用LinkedList来提高效率
LinkedList专门提供对头部和尾部元素进行添加和删除操作的方法

2.使用LinkedList存储元素
在这里插入图片描述
3.LinkedList的特殊方法
在这里插入图片描述

四、Map接口(HashMap 、TreeMap )

1.Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。最常用的实现类是HashMap

2.使用HashMap存储元素
在这里插入图片描述
3.TreeMap:适用于按自然顺序或自定义顺序遍历键(key)。
HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。

4.Map接口常用方法
在这里插入图片描述
5.遍历Map集合
方法1:通过迭代器Iterator实现遍历
获取Iterator :Collection 接口的iterator()方法

Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素

方法2: 增强for循环
在这里插入图片描述
以下是代码演示部分

package cn.jbit.exec;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 使用HashMap存储和处理企鹅信息。
 * @author 丿林
 */
public class Test4 {
	public static void main(String[] args) {

		/* 1、创建多个企鹅对象*/
		Penguin ououPenguin = new Penguin(1,"欧欧", "Q仔");
		Penguin yayaPenguin = new Penguin(2,"亚亚", "Q妹");
		Penguin meimeiPenguin = new Penguin(3,"美美", "Q妹");
		Penguin feifeiPenguin = new Penguin(4,"菲菲", "Q妹");

		/* 2、创建HashMap集合对象并把多个企鹅对象放入其中*/
		Map<Integer,Penguin> penguinMap=new HashMap<Integer,Penguin>();
		penguinMap.put(ououPenguin.getId(),ououPenguin);
		penguinMap.put(yayaPenguin.getId(),yayaPenguin);
		penguinMap.put(meimeiPenguin.getId(),meimeiPenguin);
		penguinMap.put(feifeiPenguin.getId(),feifeiPenguin);
		/*3、通过迭代器依次输出集合中所有狗狗的信息*/
		System.out.println("使用Iterator遍历,所有企鹅的昵称和品种分别是:");
		Set<Integer> keys=penguinMap.keySet();//取出所有key的集合
		Iterator<Integer> it=keys.iterator();//获取Iterator对象
		while(it.hasNext()){
			int key=it.next();  //取出key
			Penguin penguin=penguinMap.get(key);  //根据key取出对应的值
			System.out.println(penguin.getName()+"\t"+penguin.getSex());
		}
		/*4、通过foreach依次输出集合中所有狗狗的信息*/
		System.out.println("使用foreach语句遍历,所有企鹅的昵称和品种分别是:");
		 for(int key:keys){
			 Penguin penguin=penguinMap.get(key);  //根据key取出对应的值
				System.out.println(penguin.getName()+"\t"+penguin.getSex());	
		}
	}
}


五、Set接口(HashSet 、TreeSet)

1.常用方法
first():返回此Set集合中第一个(最低)元素
last():返回此Set集合中最后一个(最高)元素
comparator():返回对Set进行排序的比较器,如果Set使用自然顺序,则返回null
headSet(T test):返回一个新的Set集合,拥有test(不包含)之前的所有对象
tailSet(T test):返回一个新的Set集合,拥有test(包含)之后的所有对象
subSet(T test1,E test2):返回一个新的Set集合,拥有test(包含)之后,test2(不包含)之前的所有对象。

public class set{
    public static void main(String[] args) {
        //创建String类型的TreeSet集合
        TreeSet <String> tree=new TreeSet<String>();
        tree.add("zhangsan");//添加元素
        tree.add("lisi");
        tree.add("wangwu");
        System.out.print("tree的第一个元素:");
        System.out.println(tree.first());
        System.out.print("tree的最后一个元素:");
        System.out.println(tree.last());
        System.out.println("创建迭代器遍历集合");
        Iterator<String> it =tree.iterator();
        //遍历集合的方法
        while(it.hasNext()){
            String string =it.next();
            System.out.println(string);
        }
        System.out.println("取出lisi之前的对象元素");
        it=tree.headSet("lisi").iterator();
        while(it.hasNext()){
            String string =it.next();
            System.out.println(string);
        }   
   	  }
    }

六、最后提一下:泛型集合

1.可以用于解决以下强制类型转换时容易出现的异常问题
List的get(int index)方法获取元素
Map的get(Object key)方法获取元素
Iterator的next()方法获取元素

在这里插入图片描述
在这里插入图片描述

七、总结图

在这里插入图片描述

  • 28
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值