学习笔记之面向对象编程16(容器之Set,List)

本文详细介绍了Java中的Set和List接口。Set接口实现无序且不允许重复的容器,如HashSet和TreeSet;List接口则提供有序并可重复的元素,如ArrayList和LinkedList。此外,还展示了List接口的常用操作,如get、add、remove等,并提到了Collections类提供的排序、洗牌、反转等算法。
摘要由CSDN通过智能技术生成

(一)Set接口

《1》Set接口是Collections的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可以重复;

《2》Set容器可以与数学中的"集合”的概念相对应;

《3》Set容器有HashSet,TreeSet等

举例:

import java.util.*;
public class Test03 {
	public static void main(String[] args){
		Set s1 = new HashSet();
		Set s2 = new HashSet();
		s1.add("a");
		s1.add("b");
		s1.add("c");
		s1.add("yang");
		s1.add("miao");
		s1.add("miao");
		Set su = new HashSet(s1);
		su.retainAll(s2);
		Set sn = new HashSet(s1);
		sn.addAll(s2);
		System.out.println(su);
		System.out.println(sn);
	}
}


运行结果:

[]
[a, b, c, yang, miao]

注:Set和List容器类都具有Constructor(Collcetions c),构造方法用以初始化容器类

(二)List接口

《1》List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,并且可以重复;

《2》List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素;

《3》List容器类有ArrayList,LiinkedList等。

Object   get(int  index);

Object   get(int   index,Object   element);

void  add(int  index ,Object  element);

Object  remove(int   index);

int   indexof(Object  o);

int   lastIndexof(Object o);

举例:

import java.util.*;
public class Test04 {
	public static void main(String[] args){
		List l1 = new LinkedList();
		for(int i=0;i<=5;i++){
			l1.add("a"+i);
		}
		System.out.println(l1);
		l1.add(3,"A");
		System.out.println(l1);
		l1.set(5, "B");
		System.out.println(l1);
		System.out.println((String)l1.get(2)+" ");
		System.out.println(l1.indexOf("a5"));
		l1.remove(2);
		System.out.println(l1);
	}
}


运行结果:

[a0, a1, a2, A, a3, a4, a5]
[a0, a1, a2, A, a3, B, a5]
a2
6
[a0, a1, A, a3, B, a5]
(三)List常用算法

  类java.util.Collections提供了一些静态方法实现了基于List容器的一些常用算法:

void   sort(List):对List容器的元素排序;

void   shuffle(List):对List容器内的对象进行随机排序;

void   reverse(List):对List容器内的对象进行逆序排列;

void   fill(List,object):用一个特定的对象重写整个List容器;

void   copy(List  dest,List   src):将src  List容器内容拷贝到dest  List容器;

int   binarySearch(List,object):对于顺序的List容器,采用折半查找的方法查找特定对象。

import java.util.*;
public class Test05 {
	public static void main(String[] args){
		List l1 = new LinkedList();
		for(int i=0;i<=9;i++){
			l1.add("v"+i);
		}
		System.out.println(l1);
		Collections.shuffle(l1);
		System.out.println(l1);
		Collections.reverse(l1);
		System.out.println(l1);
		Collections.sort(l1);
		System.out.println(l1);
		System.out.println(Collections.binarySearch(l1, "v1"));
	}
}


运行结果:

[v0, v1, v2, v3, v4, v5, v6, v7, v8, v9]
[v4, v1, v6, v0, v7, v2, v9, v8, v5, v3]
[v3, v5, v8, v9, v2, v7, v0, v6, v1, v4]
[v0, v1, v2, v3, v4, v5, v6, v7, v8, v9]
1

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值