1,数组可以存储基本数据类型也可以存储引用数据类型
int [] arr1 = {1,2,3};
String [] arr2 = {“a”,“b”,“c”}; System.out.println(Arrays.toString(arr1)); System.out.println(Arrays.toString(arr2));
2,如果集合要存储基本数据类型,那么实际存储的是他们的包装类
ArrayList<Integer> list2 = new ArrayList<>();
list2.add(1);
list2.add(2);
list2.add(3);
System.out.println(list2);
...
…
3,Collection:是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现
3.1创建Collection集合的对象
多态的方式
具体的实现类ArrayList
Collection.size(); 集合的长度 返回值int Collection.isEmpty(); 判断集合是否为空 返回值类型boolean Collection.contains(“a”) 判断集合中是否存在指定元素 返回值类型boolean
Collection.clear(); 清空集合
Collection.remove(“aaa”) 从集合中移除指定元素 返回值类型boolea
Collection.removeif(Object o)根据条件进行删除 返回为true删除
Collection.removeIf(
(String s)->{
return s.length() == 3;
}
);
System.out.println(collection);
}
..
…
4,Collection集合的遍历:迭代器:集合的专用遍历方式
Collection<String> list = new ArrayList<>();
list.add("a");
list.add("b");
获得迭代器的对象迭代器对象一旦被创建出来,默认指向集合的0索引处
Iterator<String> it = list.iterator();
利用迭代器里面的方法进行遍历 当前位置是否有元素可以被取出
```java
System.out.println(it.hasNext());
取出当前位置的元素 + 将迭代器往后移动一个索引的位置
System.out.println(it.next());
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
5,增强for循环
实现Iterable接口的类才可以使用迭代器和增强for简化
数组和Collection集合的遍历
for(集合/数组中元素的数据类型 变量名 : 集合/数组名) {
// 已经将当前遍历到的元素封装到变量中了,直接使用变量即可
}
// list 就是要遍历的集合或者数组例:
for (String s : list){
System.out.println(s);
}
6, list集合
有序集合,这里的有序指的是存和取顺序用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素与Set集合不同,列表通常允许重复的元素List集合的特点:存取有序可以重复有索引
list集合的方法:
//在此集合中的指定位置插入指定的元素 list.add(0,“qqq”); System.out.println(list);
//删除指定索引处的元素,返回被删除元素
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
String s=list.remove(0);
boolean c=list.remove("bb");
System.out.println(c);
System.out.println(s);
System.out.println(list);
//
修改指定索引处的元素,返回被修改的元素
```java
String result = list.set(0, "qqq");
System.out.println(result);
System.out.println(list);
//返回指定索引处的元素
String s = list.get(0);
System.out.println(s);
7,数据结构:栈结构:先进后出
队列结 构:先进先出
数组结构:查询快、增删慢
队列结构:查询慢、增删快
8,List集合的实现类:
ArrayList集合 底层是数组结构实现,查询快、增删慢
LinkedList集合 底层是链表结构实现,查询慢、增删快
9,LinkedList集合特有的功能:
public void addFirst(E e)在该列表开头插入指定的元素
public void addLast(E e)将指定的元素追加到此列表的末尾public E getFirst()返回此列表中的第一个元素
public E getLast()返回此列表中的最后一个元素public E removeFirst()从此列表中删除并返回第一个元素public E removeLast()从此列表中删除并返回最后一个元素
LinkedList<String> list = new LinkedList<>(); list.add("aaa");
list.add("bbb");
list.add("ccc");
String first = list.removeFirst(); System.out.println(first);
String last = list.removeLast(); System.out.println(last);
String first = list.getFirst();
String last = list.getLast();
System.out.println(first);
System.out.println(last);
list.addLast("www");
System.out.println(list);
list.addFirst("qqq");
System.out.println(list);