容器:持有事务
1:一个图
1:一个类
Collections 封装了一些基于List容器的算法
3:三个知识点
Foreach语句
Generic泛型
Autoboxing/unboxing
6:六个接口
Collection
Set
List
Map
Iterator
Comparable
一个图
Set中对象没顺序且不可以重复
List中对象有顺序且可以重复
Map接口定义了存储“键(Key)-值(value)映射对”的方法。
一个类
Collections 封装了一些基于List容器的算法三个知识点
Foreach语句
Generic泛型
Autoboxing/unboxing
自动将基础类型转换为对象
自动将对象转换为基础类型
六个接口
Collection
Set
List
Map
Iterator
Collection<String> c2 = new HashSet<String>();
c2.add("aaa"); c2.add("bbb"); c2.add("ccc");
Iterator<String> it = c2.iterator();
while(it.hasNext()) {
String s = it.next();
System.out.println(s);
}
Comparable
Name类重写equals、hashcode、comparable方法
class Name implements Comparable {
private String firstName,lastName;
public Name(String firstName, String lastName) {
this.firstName = firstName; this.lastName = lastName;
}
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
public String toString() { return firstName + " " + lastName; }
public boolean equals(Object obj) {
if (obj instanceof Name) {
Name name = (Name) obj;
return (firstName.equals(name.firstName))
&& (lastName.equals(name.lastName));
}
return super.equals(obj);
}
public int hashCode() {
return firstName.hashCode();
}
public int compareTo(Object o) {
Name n = (Name)o;
int lastCmp =
lastName.compareTo(n.lastName);
return
(lastCmp!=0 ? lastCmp :
firstName.compareTo(n.firstName));
}
List
大量随机访问-ArrayList(基于数组)
经常从表中间插入或删除元素-LinkedList(基于链表)
Map/Set
快速访问-HashMap/HashSet(使用了散列函数)
保持“键”始终处于排序状态-TreeMap/TreeSet(元素存储在红-黑树数据结构中)
保持元素插入的顺序,可快速访问-LinkedHashMap/LinkedHashSet(散列、链表)
7.5 集合(容器)
1.什么是集合? Java中常用的集合有哪几类?集合中用来存放什么?
集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
2.集合与数组的区别?
1.数组声明了它容纳的元素的类型,而集合不声明(不加泛型时添加的类型是Object)。
2.数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
3.数组是java语言中内置的数据类型,是线性排列的,执行效率或者类型检查,都是最快的. ArrayList就是基于数组创建的容器类.
3.各类集合中元素存与取的特点?如何定义一个集合?
List 有序,可重复。
Set 无序,唯一。
Map(双列集合)
A:Map集合的数据结构仅仅针对键有效,与值无关。
B:存储的是键值对形式的元素,键唯一,值可重复。
List<Apple> apples = new ArrayList<Apple>();
Set<Integer> intset = new HashSet<Integer>();
Map<Integer,Integer> m = new HashMap<Integer,Integer>();
7.6集合类
1.List接口的实现方式?如何定义一个list集合?
2.List集合的特点?
3.List集合中常用的方法有哪些?
List:有顺序以线性方式存储,可以存放重复对象
ArrayList:
底层的数据结构是数组;所以它查询快,增删慢;线程不安全,但是效率高。
LinkList:
底层的数据结构是链表,所以它查询慢,但是增删快;线程不安全,但是效率高。
7.7集合工具类
1.集合的工具类有哪些?
1. 类Collections 是集合框架的工具类,其中的方法都是静态方法。
2. 调用某个方法直接利用类名调用即可,如Collections.sort(list1);。
2、用来排序的集合工具类是什么?如何使用其中的方法?
java.util.Arrays类
提供了各种对象的排序:char[],byte[],long[],int[]和Object[],注Arrays.sort方法排序返回的结果是升序Ascending的排列顺序。你可以定制排序顺序。这个排序和TreeSet的红黑树排序方式不同,Set不允许有重复数据存在,因此,当有重复数据时,可以使用这个工具类进行排序。Arrays提供的排序算法是归并排序算法(当元素数量小于=7时采用的是插入排序),空间复杂度O(n)。
java.util.Collections类
该工具类提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。