Collection中List的集合

Collection 层次结构 中的根接口。

在这里插入图片描述

List的集合

在这里插入图片描述有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

list的实现子类

ArrayList

add(E e)  将指定的元素添加到此列表的尾部。
add(int index, E element) 将指定的元素插入此列表中的指定位置。
addAll(Collection<? extends E> c)  按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部

size() 返回此列表中的元素数。
contains(Object o) 如果此列表中包含指定的元素,则返回 trueisEmpty() 如果此列表中没有元素,则返回 true

// contains indexof remove 方法检查的时候 比较的是对象的equals方法

public static void main(String[] args) {
	ArrayList list =new ArrayList();
	ArrayList list1 =new ArrayList();
	//add(E e)  将指定的元素添加到此列表的尾部。
	
	list.add(0);
	list1.add(1);
	//add(int index, E element) 将指定的元素插入此列表中的指定位置。
	list.add(1, "牛逼");
	list1.add(1, "牛逼1");
	//addAll(Collection<? extends E> c)  按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部
	list.addAll(list1);
	show(list);
	System.out.println("----");
	//size() 返回此列表中的元素数。
	int size=list.size();
	System.out.println(size);
	//contains(Object o) 如果此列表中包含指定的元素,则返回 true。
boolean a=	list.contains("牛逼");
System.out.println(a);
System.out.println("------------");
//isEmpty() 如果此列表中没有元素,则返回 true
System.out.println(list.isEmpty());

//set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。
	list.set(0, "垃圾");
	show(list);
	System.out.println("-------------");
	//remove(int index)   移除此列表中指定位置上的元素。
	list.remove(1);
	show(list);
}
public static void show(ArrayList list){
	for (Object object : list) {
		System.out.println(object);
	}
}

Set的集合

一个不包含重复元素的 collection

在这里插入图片描述 * set集合 赋值不可重复,不可为空

  • set接口的实现类
  • HashSet :
  • TreeSet :
    //HashSet底层是HashMap实现的
HashSet<String> hashSet=new HashSet<>();
	
	//HashSet底层是HashMap实现的
	hashSet.add("明天");
	hashSet.add("晴天");
	hashSet.add("你好");

	for (String string : hashSet) {
		System.out.println(string);
	}
  • 1 元素重复的依据是什么
  • 默认情况继承Object 走Object 的hashCode 和equals方法决定的对象的地址
  • 先判断是hashCode值相同之后,在判断equals方法
  • hashCode不相等,一定不是相同对象
  • 2重复的时候 添加的是把之前的覆盖掉还是添加不上
  • 是添加不上 ,不是覆盖

在类中重新hashCode 和equals方法

@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((name == null) ? 0 : name.hashCode());
	result = prime * result + stuID;
	return result;
	
}

```java
@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Students other = (Students) obj;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		if (stuID != other.stuID)
			return false;
		return true;
	}
	

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值