当前位置: 首页 > news >正文

【Java】之集合总结(上)

CSDN话题挑战赛第2期
参赛话题:学习笔记

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?

目录

一、集合概述

二、Collection接口

1.Collection接口的声明

2.Collection接口的方法

三、List接口

1.List接口的声明

2.List接口的方法

3.举例

代码

执行结果

四、Set接口

HashSet

举例

代码

执行结果


一、集合概述

用来存储不同类型的多个对象的一些特殊类的统称为集合,可以简单的理解为存储不同数据类型的动态数组(因为数组的长度是一定的,而集合长度是可以改变的)。核心接口:Collection、List、Set、Map。

二、Collection接口

Collection接口是Java单列集合中的根接口,在某种定义上可以把Collection看成是动态的数组,一个对象的容器,通常把放入Collection中的对象称为元素。

1.Collection接口的声明

public interface Collection

2.Collection接口的方法

public boolean add(Object o)

功能描述:向当前集合中添加一个元素

public boolean addAll(Collection c)

功能描述:将集合c中所有元素添加给此集合

public void clear()

功能描述:删除集合中的所有元素

public boolean contain(Object o)

功能描述:查找集合中是否含有对象o

public boolean containsAll(Collection c)

功能描述:查找集合中是否含有集合c中的所有元素

public boolean equals(Object o)

功能描述:判断集合是否等价

public boolean isEmpty()

功能描述:判断集合中是否有元素

public boolean remove(Object o)

如果集合中有与o相匹配的对象,就删除对象o

public Iterator iterator()

返回一个迭代器,用于访问集合中的各个元素

public int size()

功能描述:返回当前集合中元素数量

三、List接口

List是Collection的子接口,继承了Collection接口的全部方法,还添加了一些特有方法。

1.List接口的声明

public interface List extends Collection

2.List接口的方法

public void add(int index,Object element)

功能描述:在指定位置index上添加元素element

public Object get(int index)

功能描述:返回列表中指定位置的元素

public int indexOf(Object o)

功能描述:返回第一次出现元素o的位置,否则返回-1

public int indexOf(Object o)

功能描述:返回最后一次出现元素o的位置,否则返回-1

public Object remove(int index)

功能描述:删除指定位置上的元素

public Object set(int index,Object element)

功能描述:用元素element代替index位置上的元素

3.举例

随机生成7个36以内的数并存入list集合中

代码

package test3;

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

public class test3 {
	public static void main(String[] args) {
		Random r=new Random();
		List<Integer> list=new ArrayList<Integer>();
		int count=0;
		while(count<7) {
			int num=r.nextInt(36)+1;
			if(!list.contains(num)) {
				list.add(num);
				count++;
			}
			}
		System.out.println("36选7摇号如下:");
			for (Integer integer : list) {
				System.out.print(integer+"\t");
			}
		}
}

执行结果

四、Set接口

Set的方法与Collection接口的方法基本一致,Set元素无序且不重复

HashSet

HashSet是Set接口的一个实现类,为了去掉重复元素需要重写hashCode()和equals()方法

举例

随机生成7个36以内的数并存入HashSet集合中

代码

package test8;

import java.util.HashSet;

public class test8 {
	public static void main(String[] args) {
		HashSet<Integer> set=new HashSet<>();//注意Integer里的I是大写的
		System.out.println("36选7摇号如下:");
		while(set.size()<7) {
			int num=(int)(Math.random()*36)+1;//(int)不要忘记
			set.add(num);
		}
		for (Integer integer : set) {
			System.out.print(integer+"\t");
		}
	}
}

执行结果

相关文章:

  • Redis中加锁的lua脚本的源码
  • Mac电脑解决Google翻译失效实用方法
  • 【易购管理系统】商品列表
  • 北斗导航 | RTKLib中的模型和算法(一)—— 时间系统
  • 【论文阅读】自动作文评分系统:一份系统的文献综述
  • avformat_open_input() 代码分析
  • Spring Bean的生命周期、Java配置BeanFactoryPostProcessor失效与解决
  • 大模型系统和应用——高效训练模型压缩
  • “华为杯”第十八届中国研究生数学建模竞赛一等奖经验分享
  • C#的StreamReader类使用说明
  • 基于图搜索的规划算法之 A* 家族(九):Hybrid A* 算法
  • 2022年Webpack 5初学者完整指南
  • 【MATLAB教程案例22】基于MATLAB图像去噪算法仿真——中值滤波、高斯滤波以及频域滤波等
  • 浙江大学软件学院2022保研经历分享
  • 表的自然连接(数据结构链表链接)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Android 控件背景颜色处理
  • axios 和 cookie 的那些事
  • create-react-app做的留言板
  • DataBase in Android
  • express + mock 让前后台并行开发
  • gops —— Go 程序诊断分析工具
  • HTTP中的ETag在移动客户端的应用
  • PAT A1092
  • Redash本地开发环境搭建
  • Redis 懒删除(lazy free)简史
  • underscore源码剖析之整体架构
  • vue-cli3搭建项目
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 计算机常识 - 收藏集 - 掘金
  • 聚类分析——Kmeans
  • 判断客户端类型,Android,iOS,PC
  • 前端路由实现-history
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 智能网联汽车信息安全
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #android不同版本废弃api,新api。
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (算法)求1到1亿间的质数或素数
  • (新)网络工程师考点串讲与真题详解
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .htaccess 强制https 单独排除某个目录
  • .NET 指南:抽象化实现的基类
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET建议使用的大小写命名原则
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • [ C++ ] STL---仿函数与priority_queue
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [AIGC] Spring Interceptor 拦截器详解
  • [AR Foundation] 人脸检测的流程