手机版网站设计,网站建设合同注意点,经典网站设计,怎么做网页上小广告集合体系结构 Collection 单列集合
包含List Set
List 包含ArrayList LinkedList
Set包含HashSet TreeSet
HashSet包含LinkedHashSet
List系列集合#xff1a;添加的元素是有序的、可重复、有索引
Set系列集合#xff1a;添加的元素是无序的、不重复、无索引 Collectio… 集合体系结构 Collection 单列集合
包含List Set
List 包含ArrayList LinkedList
Set包含HashSet TreeSet
HashSet包含LinkedHashSet
List系列集合添加的元素是有序的、可重复、有索引
Set系列集合添加的元素是无序的、不重复、无索引 Collection是单列集合的祖宗接口它的功能是全部单列集合都可以继承使用的 public static void main(String[] args) {//Collection是一个接口我们不能直接创建它的对象CollectionString collnew ArrayList();//1.添加元素/*细节1.如果王List里添加元素方法总是返回true 因为List允许元素重复细节2.如果往Set李添加元素不存在返回true存在返回falseSet系列集合不允许重复* */coll.add(aaa);coll.add(bbb);coll.add(ccc);coll.add(ddd);System.out.println(coll);//2.清空
// coll.clear();
// System.out.println(coll);//3.删除//因为Collection里面定义的方法是共性的方法所以不能通过索引进行删除智能通过元素的对象进行删除/*方法会有一个布尔类型的返回值true删除成功false失败* */coll.remove(aaa);System.out.println(coll);//4.判断元素是否包含//底层是依赖equals方法进行判断是否存在的//所以要判断自定义对象是否存在时候要重新equals方法System.out.println(coll.contains(bbb));//5.判空boolean empty coll.isEmpty();System.out.println(empty);//6.获取集合的长度int size coll.size();System.out.println(size);} Collection的遍历方式 迭代器遍历
特点迭代器不依赖索引
迭代器在Java中的类是Iterator迭代器是集合专用的遍历方式
CollectionInteger collection new ArrayList();
collection.add(1);
collection.add(2);
collection.add(3);
IteratorInteger itcollection.iterator();
while (it.hasNext()){int iit.next();System.out.print(i );
} 细节注意
1.报错NoSuchElementException 2.迭代器遍历完毕指针不会复位
3.循环中只能用一次next方法
4迭代器遍历时不能用集合的方法进行添加或者删除
增强for遍历
增强for的底层就是迭代器为了简化迭代器的代码书写的
所有的单列集合和数组才能用增强for遍历
格式
for(元素的数据类型 变量名数组或者集合){
}
for(String s : list){
} public static void main(String[] args) {CollectionString coll new ArrayList();coll.add(zhangsan);coll.add(lisi);coll.add(wangwu);for (String s : coll) {System.out.println(s);}
} 细节
修改增强for中的变量不会改变集合中原来的数据 Lambda表达式遍历 public static void main(String[] args) {CollectionString coll new ArrayList();coll.add(zhangsan);coll.add(lisi);coll.add(wangwu);/* coll.forEach(new ConsumerString() {Override//s 是以此表示集合的每一个数据public void accept(String s) {System.out.println(s);}});*/coll.forEach(s - System.out.println(s));}
} List中常见的方法和遍历方式 //List集合中的两个删除的方法
//1.直接删除元素
//2.通过素银进行删除//1.创建集合并添加元素
//1.创建一个集合
ListString list new ArrayList();//2.添加元素
list.add(a);
list.add(b);
list.add(c);//void add(int index,E element);在指定索引位置添加指定的元素
//细节
/*
原来索引上的元素会依次往后移
* */
list.add(1,QQQ);//remove
String remove list.remove(0);
System.out.println(remove);//set
String aaa list.set(0, aaa);
System.out.println(aaa);//get
String s list.get(0);
System.out.println(s);//3.打印集合
System.out.println(list); List集合的五种遍历方式 //创建集合ListString list new ArrayList();list.add(aaa);list.add(bbb);list.add(ccc);list.add(ddd);list.add(eee);/* //1.迭代器遍历IteratorString iterator list.iterator();while (iterator.hasNext()){String next iterator.next();System.out.println(next);}*///2.增强for/* for (String str : list) {System.out.println(str);}*///3.Lambda表达式
/* list.forEach(s- System.out.println(s));*///4.普通for/* for (int i 0; i list.size(); i) {String s list.get(i);System.out.println(s);}*///5.列表迭代器//获取一个列表迭代器对象同样的里面的指针也是指向零索引ListIteratorString it list.listIterator();while (it.hasNext()){String next it.next();if (bbb.equals(next)){it.add(qqq);}System.out.println(next);}System.out.println(list); 遍历方式比较
迭代器遍历在遍历的过程中需要删元素请使用迭代器
列表迭代器在遍历的时候需要添加元素请使用列表迭代器
增强forLambda仅仅想遍历
普通for如果遍历的时候想操作索引 Set系列集合
无序存取顺序不一致
不重复可以去除重复
无索引没有带索引的方法所以不能使用普通for遍历也不能通过索引获取元素 Set集合的实现类
HashSet无序不重复无索引
LinkedHashSet有序不重复无索引
TreeSet可排序不重复无索引 //1.创建Set集合对象SetString s new HashSet();//2.添加元素s.add(aaa);s.add(bbb);s.add(ccc);s.add(ddd);
// s.add(aaa);3.遍历//迭代器遍历IteratorString iterator s.iterator();while (iterator.hasNext()) {String next iterator.next();System.out.println(next);}//增强forfor (String s1 : s) {System.out.println(s1);}//Lambda表达式s.forEach(a - System.out.println(a)); HshSet底层采取哈希表存储数据
TreeSet集合默认的规则对于字符、字符串类型按照ASCII码表中的顺序进行排序
TreeSet的两种排序方式
1.自然排序
类里面实现Comparable接口里面的方法
Override
public int compareTo(Student o) {//指定排序的规则//按照年龄的升序进行排序return this.getAge()-o.getAge();} 2.比较器排序
TreeSetString ts new TreeSet((o1, o2) - {int i o1.length() - o2.length();i i 0 ? o1.compareTo(o2) : i;return i;
});TreeSetString ts new TreeSet(new ComparatorString() {Overridepublic int compare(String o1, String o2) {int i o1.length() - o2.length();i i 0 ? o1.compareTo(o2) : i;return i;}
}); 使用场景 1.如果想要集合中的元素可重复 用ArrayList基于数组的 2.如果想要集合中的元素可重复而且当前的增删操作明显多于查询 用LinkedList基于链表的 3.如果想对集合中的元素去重 用HashSet基于哈希表的 4.如果想对集合中的元素去重而且保重存取顺序 用LinkedHashList基于哈希表和双链表效率低于HashSet 5.如果想对集合中的元素进行排序 用TreeSet基于红黑树后续可以用List集合实现排序