Java集合

集合基础



如果存储的数据,长度经常发生改变,推荐使用集合.



集合和数组的区别:

共同点 都是存储数据的容器

不同点 数组容量是固定的,集合的容量可以发生改变





ArrayList集合

构造方法摘要

public ArrayList()创建一个空参

public boolean add(E e)将指定的元素加到此集合的末尾

public void add(int index,E element)在此集合中的指定位置插入指定的元素

   

ArrayList<E>

指定泛型

<>中是引用数据类型



 //泛型只能指定引用数据类型

  //如果想要存储整数,指定类型指定为基本数据类型的包装类(基本数据类型转成的引用数据类型)

  //int的包装类型是integer

  //集合只能存储引用数据类型数据,不能存储基本数据类型

  //基本数据类型包装类

  byte:Byte

  short:Short

  char:Character

  int:Integer

  long:Long

  float:Float

  double:Double

  char:Character

  boolean:Boolean

                */



集合基础,遍历集合通用格式

for(int i=0;i<集合对象.size();i++){

集合对象.get(i)就是指定索引处的元素

}



for(int i=0;i<数组.lenggth;i++){

数组名[索引];

}



ArrayList集合常用方法(增删改查)

public boolean remove(Object o)删除指定的元素,返回删除是否成功

public E remover(int index) 删除指定索引处的元素,返回被删除的元素

public E set(int index,E element)修改指定索引处的元素,返回被修改的元素

public E get(int index)返回指定索引处的元素

public int size()返回集合中的元素的个数

存储字符串并遍历

1创建集合对象

2往集合中添加字符串对象

3遍历集合获取每一个元素

4遍历集合获取集合长度

5通过遍历的集合获取集合的格式



存储学生对象并遍历

1定义学生类

2创建集合对象

3创建学生对象

4将学生导入对象

5遍历查找

//

1创建集合对象

2创建学生对象

3封装信息到学生对象中

4使用集合对象,调用add方法

5遍历集合



如果需要泛型创建一个类的对象,在定义类的时候类名后面要加<E>,如何字母都可以,习惯用E

定义类时,类名后面的<E>,专业说法是泛型,用来代表一种不确定的特性


集合和数组都是容器.

集合的特点:1集合大小不固定.只能是引用类型

数组:长度固定,可以是基本类型也可以是引用类型


集合类体系结构

单列Collection//根接口,规定了所有的单例集合都必须是有的通用方法

分List   ArrayList/LinkedList

  Set   HashSet(LinkedHashSet )/TreeSet

双列Map

分HashSet   LinkedHashSet

  TreeSet


public boolean add(E e)         把给定的对象添加到当前集合中 

public void clear()         清空集合中所有的元素

public boolean remove(E e) 把给定的对象在当前集合中删除

public boolean contains(Object obj) 判断当前集合中是否包含给定的对象

public boolean isEmpty() 判断当前集合是否为空

public int size()         返回集合中元素的个数。

public Object[] toArray() 把集合中的元素,存储到数组中



List系列集合:添加的是有序,可重复,有索引

Set系列集合:添加的元素是无序,不重复,无索引

HashSet无序,不重复,无索引

LinkedHashSet有序,不重复,无索引

TreeSet按照大小默认升序排序,不重复,无索引.


迭代器遍历概叙

迭代器是集合的专用遍历方式.

Iterator<E>iterator() 返回集合中迭代器对象

默认指向当前集合索引0的位置


迭代器元素越界会

出现NOSuchElementException异常


增强for可以遍历哪些容器?

既可以遍历集合也可以遍历数组。


增强for的关键是记住它的遍历格式

for(元素数据类型 变量名 : 数组或者Collection集合) {

 //在此处使用变量即可,该变量就是元素

}


增强for本质上就是迭代器的简化写法


JDK8 foreach方法遍历集合


集合中存储的是元素的地址信息


Iterator<String>it=list.iterator();迭代器遍历

For(String s.list)增强for遍历

可变参数格式

方法名(数据类型...变量名)

本质:本质上是一个数组,在方法中当数组来用即可.


可变参数注意事项

如果有多个参数,可变参数写在最后一个.


Collections集合工具类

不属于集合,是用来操作工具的

public static <T> boolean addAll(Collection<? super T> c, T... elements)

 *把多个元素添加到参数的集合中去

 * public static void shuffle(List<?> list)

 * 把List集合中元素打乱

 * public static <T> void sort(List<T> list)

 * 对List集合中元素进行排序

 * public static <T> void sort(List<T> list,Comparator<? super T> c)

 *对于List集合中的元素按照自定义比较器排序

 * 注意:以上方法都是static修饰的,静态方法直接用类名调用即可


Collections.addAll(list,"abc","dvd");

添加多个元素

Collections.shuffle(list)

把list集合中元素打乱


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值