集合
集合ArrayList 可以添加重复数据
ArrayList<e> list = new ArrayList<e>();
如果是基本数据类型就用包装类
如果不加<e>,那么集合可以同时存放基本数据类型和String类型
集合长度 size()方法,获取集合长度.
集合增加
add(Object obj);方法给集合添加数据,
add(int index, Object obj);在指定下标index位置处添加obj数据;
1.index不能超出原来集合长度
2.如果下标index的位置上有值,就会把下标和之后的值往后移,把数据添加到下标index位置上.
集合删除
remove(Object obj)方法 集合删除
如果obj数据不是int类型和char类型,就查找第一个然后把它删除
如果obj是int类型和char类型,就会默认为是下标,找到对应下标的值删除
int类型和char类型要删除的话,必须使用对应的封装包. int -----Integer. char -----Charatcer.
集合修改
set(int index, Object obj)方法,下标index 新的值obj
集合查找
indexOf ();方法,放回数据第一次找到的下标,没有放回-1
LastIndexOf();反向查找对应数据的下标,返回下标
contains();查找数据,找到返回true,没有找到返回false
get();查找对应下标,放回该下标存放的值
判断集合是否为空 isEmpty();
清空集合 clear();
Verctor集合与ArrayList集合
1.都是List接口下的集合;
2.ArrayList的方法和实现基本上和Vertor一样,底层是数组实现
区别:
1.Vector的方法都是线性安全的,ArrayList没有考虑线性安全问题.
2.ArrayList在一些算法上做了优化,效率更高.
ArrayList与LinkedList区别
1.ArrayList底层是数组实现,LinkedList底层是链表实现
1.1 在Java中链表就是自己实现了一个类,在类中记录了前一个和后一个的地址,每次查找都需要找到前一个或后一个才能往前或往后找到
2.ArrayList查找速度快,但删除和插入的速度慢
3.LinkedList删除和插入的速度快,但查找速度慢
4.LinkedList有自己独有的方法:addFirst addLast,removeFirst,rnoveLast
List接口下的集合特点
1.都是有序的(按照添加顺序获取)
2.都有下标
3.可以重复
Set接口下的集合特点
1.没有下标
2.无序的
3.不能重复(会覆盖)
Set接口的集合判断是否重复是通过hash值是否相等判断
HashSet集合与TreeSet集合区别
TreeSet集合放入进去的对象必须实现Comparable接口,并且实现Comparable接口的compareTo方法之后,就可以自动排序,(存储地址不变)
Comparable接口与Comparator接口的区别
1.Comparable接口在Java.lang包,Comparator接口在Java.util包
2.Comparable接口下的compareTo方法只需一个参数,在实体类实现
Comparator接口下的compare方法需要两个参数,在另外一个类或内部类实现
它们都是只有一个方法
在compareTo方法或compare方法中,自定义排序规则
注意:compareTo方法和compare方法返回的只需要是正数或负数就可以了
Collections
在Java.util包,集合的工具包,一个抽象方法
只能List集合使用,Set集合必须转换成List集合才可以使用
sort方法一个参数时,实体类必须实现Comparable接口
Collections.sort(list);//List泛型集合
sort方法两个参数时,必须另外一个类实现Comparator接口
Collections.sort(list,new StudentCompare()); //List泛型集合,实现Comparator接口的类
shuffle方法进行字符串随机乱序
Collections.shuffle(list);//List泛型集合
集合遍历
1.for循环 只适合List接口下的集合
2.foreach循环
3.迭代器Iterator
集合转换类型
Set<Student> set = new TreeSet<Student>(); set.add(stu1); set.add(stu2); set.add(stu3); set.add(stu4); for (Student student : set) { System.out.println(student); } System.out.println("======================"); //Set集合转换List集合 List<Student> list = new ArrayList<Student>(set);
来源:https://www.cnblogs.com/hcjk12580/p/11998711.html