java 集合

集合是一种容器,用来按规律存放数据结构。集合只能放引用类型,不能放基本数据类型。

数组也是容器,不过数组是定长的,既可以存储基本数据类型,也可以存储引用类型。

集合的类的关系

 Set

Set集合中存放的元素是无序的,不重复的。Set包括HashSet和TreeSet。

  • 无序是指加入集合的顺序和集合存储的顺序不一致
  • 不重复的判断方式:先判断hashCode,若不相同,则不相同,若相同,则使用equals()方法判断
  • 添加重复的元素也不会报错,会有boolean类型的返回值false,并且不会存入集合中

HashSet

  • 采用哈希算法来存储
  • 创建HashSet对象:HashSet<Object> set = new HashSet<>(); Object可以是任意一种引用类型

TreeSet

  • 创建TreeSet对象: TreeSet<Object> set = new TreeSet<>();
  • 存储是按顺序存储的(从小到大),所以,TreeSet存入的对象是需要能够比较大小的(即除String和八个基本类型的包装类之外,其他的类需要实现Comparable接口的compareTo()方法)。比如有一个Student类,有私有属性id和name,name。类的实现如下:
public class Student implements Comparable<Student>{

	private int id;
	private String name;

	public Student(int id,String name) {
		super();
		this.id = id;
		this.name = name;
	}
	@Override
	public int compareTo(Student o) {
		if(this.id>o.id) {
			return 1;
		}else if(this.id==o.id) {
			return 0;
		}
		return -1;
	}
}

List

List集合中放的元素是有序的,元素允许重复

  • 有序是指存储的顺序和存入的顺序相同

ArrayList

  • ArrayList是类似于数组的线性存储
  • 创建对象:ArrayList<类型> 对象名  = new ArrayList<>();
  • 获取某一元素:get(index),index是值元素的索引,类似于数组的下标,从0开始,最大为size()-1
  • 获取元素在list中第一次出现的索引值,如果没有,返回-1:int indexOf(obj)
    最后一次出现的索引值:int lastIndexOf(obj)
  • 把某个索引位置上的元素替换为obj:set(index,obj)

LinkedList

  • java中的链表的表现,相比于ArrayList可以在头部尾部添加、获取、删除元素,可以非常方便的实现stack、queue等数据结构
  • ’创建对象:LinkedList<类型> 对象名 = new LinkedList<>();

LinkList与ArrayList的比较

  • 存储方面:ArrayList是线性存储,LinkedList是将对象串联起来的链表
  • 操作方面:ArrayList随机查找效率高,LindedlList的插入删除操作效率高
  • 功能:LinkedList的功能要多于ArrayList

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值