Collection集合

集合Collection

1、概诉

集合主要是一些容器,是用来存储数据的。Collection接口是集合中的根层次的接口,其子类主要有Set和List接口,其中Set接口的主要实现类有HashSet和TreeSet,List接口的实现类主要有ArrayList和LinkedList。如下图。	

在这里插入图片描述

2、Collection集合

主要方法有:
	add(E e):往集合中添加元素
	remove(Object o):将指定元素对象从集合中删除
	isEmpty():返回boolean值,用于判断当前集合是否为空
	iterator():返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象
	size():返回int值,获取该集合中元素的个数

3、List集合

List集合中的元素允许重复,各个元素的顺序就是插入顺序。类似java数组,用户可以利用索引来访问集合中的元素
主要方法:
	get(int index):获取指定索引位置的元素
	set(int index,Object):将集合指定索引位置的元素对象改为指定的对象
	1、Lsit接口的实现类
public class ListTest002 {
	public static void main(String[] args) {
		//利用ArrayList创建list对象
		//ArrayList集合是线性存储元素
		//LinkedList集合是链表存储元素
		List<Integer> list=new ArrayList<>();
		//往list集合添加元素
		list.add(1);
		list.add(2);
		list.add(2);
		list.add(3);
		//创建随机数(0-length-1
		int i=(int)(Math.random()*list.size());
		//打印递i个元素
		System.out.println("随机获取数组中的元素:"+list.get(i));
//		list.set(2, 3);
		//将指定索引位置的元素去除
		list.remove(2);
		//遍历循环输出集合元素
		for(int j=0;j<list.size();j++){
			System.out.println(list.get(j));
		}
	}
}

运行结果:
在这里插入图片描述

4、Set集合

Set集合中的对象不按照特定的方式排序,只是简单的把对象加入集合中,但是Set集合中不允许有重复的对象。
主要方法:	
	first():返回Set中当前第一个元素
	last():返回Set中当前最后一个元素
	comparator():返回对此Set中的元素进行排序的比较器。如果此Set使用自然顺序,则返回null
	headSet(E toElement):返回一个新的Set集合,新集合是toElement(不包括)之前的所有对象
	subSet(E fromElement,E endElement):返回一个新的集合,是fromElement(包括)与endElement(不包括)之间的全部对象
	tailSet(E fromElement):返回一个新的集合,新集合包含对象fromElement(包括)之后的所有对象
public class SetTest003 {
	public static void main(String[] args) {
		//创建Student对象
		Student student1=new Student("张三");
		Student student2=new Student("李四");
		Student student3=new Student("王五");
		Student student4=new Student("赵六");
		Student student5=new Student("赵六",4);
		//创建TreeSet集合
		TreeSet treeSet=new TreeSet<>();
		//往TreeSet集合中添加元素
		treeSet.add(student1);
		treeSet.add(student5);
		treeSet.add(student2);
		treeSet.add(student3);
		treeSet.add(student4);
		//获取TreeSet中的迭代器
		Iterator<Student> iterator=treeSet.iterator();
		//遍历迭代器
		while (iterator.hasNext()) {
			//如果有下一个就将下一个强转为指定的类型
			Student s = (Student) iterator.next();
			//输出
			System.out.println(s);
		}
		//获取student3(不包括)之前的集合元素的迭代器
		iterator=treeSet.headSet(student3).iterator();
		System.out.println("截取前面部分的集合");
		while (iterator.hasNext()) {
			Student student = (Student) iterator.next();
			System.out.println(student);
		}
		//获取中间元素(student3包括,student1不包括)的迭代器,要保证是递增
		iterator=treeSet.subSet(student3, student1).iterator();
		System.out.println("截取student1和student3之间的集合");
		while (iterator.hasNext()) {
			Student student = (Student) iterator.next();
			System.out.println(student);
		}
	}	
}
class Student implements Comparable<Object>{
	private String name;
	private int id;
	public static int init=001;
	
	public Student() {
		super();
	}

	public Student(String name) {
		super();
		this.name = name;
		this.id = init++;
	}
	

	public Student(String name, int id) {
		super();
		this.name = name;
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@Override
	public String toString() {
		return "Student [name=" + name + ", id=" + id + "]";
	}

	/**
	 * 设置对象顺序
	 */
	@Override
	public int compareTo(Object o) {
		Student s=(Student)o;
		if (this.getId()>s.getId()) {
			return -1;
		}else if (this.getId()<s.getId()) {
			return 1;
		}else {
			return 0;
		}
	}
	
}

运行截图:
在这里插入图片描述
注意:在利用TreeSet的时候要实现Comparable接口!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光下的赶路人star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值