Collection集合
集合:集合是java中提供的一种容器,可以用来存储多个数据。
Collection 常用功能
public boolean add(E e); // 把给定的对象添加到当前集合中
public void clear(); // 清空集合中所有的元素
public boolean remove(E e); // 把给定的对象在当前集合中删除。
public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
public boolean isEmpty(); // 判断当前集合是否为空。
public int size(); // 返回集合中元素的个数。
public Object[] toArray(); // 把集合中的元素,存储到数组中。
Iterator迭代器
迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个 元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业 术语称为迭代。
Iterator接口的常用方法如下:
public E next(); // 返回迭代的下一个元素
public boolean hasNext() :如果仍有元素可以迭代,则返回 true
Collections集合工具类
是集合工具类,用来对集合进行操作
Collection 常用方法
public static <T> boolean addAll(Collection<T> c, T... elements); // 往集合中添加一些元素。
public static void shuffle(List<?> list); // 打乱顺序,打乱集合顺序。
public static <T> void sort(List<T> list); // 将集合中元素按照默认规则排序。 默认升序
public static <T> void sort(List<T> list,Comparator<? super T> ); //将集合中元素按照指定规则排 序
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 5, 222, 1,2); //采用工具类 完成 往集合中添加元素
Collections.sort(list); //排序方法
Comparator比较器
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge()‐o2.getAge(); //以学生的年龄升序
return o2.getAge()‐o1.getAge(); //以学生的年龄降序
}
});
List集合
List接口中常用方法
public void add(int index, E element); // 将指定的元素,添加到该集合中的指定位置上
public E get(int index); // 返回集合中指定位置的元素
public E remove(int index); // 移除列表中指定位置的元素, 返回的是被移除的元素
public E set(int index, E element); //用指定元素替换集合中指定位置的元素,返回值的更新前的元素
List<String> list = new ArrayList<String>(); // 创建List集合对象
ArrayList
ArrayList
是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素
ArrayList使用步骤
ArrayList<String> list = new ArrayList<>();
泛型只能存储应用类型,不能存储基本数据类型
ArrayList方法
list.add("world"); // 添加元素
list.get(0); // 返回指定索引处的元素
list.size(); // 返回集合中的元素的个数
list.remove(0); // 删除指定索引处的元素,返回被删除的元素
存储基本数据类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1); // 添加数据
list.get(0); // 取出数据
LinkedList集合
LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合。
LinkedList接口中常用方法
public void addFirst(E e); // 将指定元素插入此列表的开头。
public void addLast(E e); // 将指定元素添加到此列表的结尾。
public E getFirst(); // 返回此列表的第一个元素。
public E getLast(); // 返回此列表的最后一个元素。
public E removeFirst(); // 移除并返回此列表的第一个元素。
public E removeLast(); // 移除并返回此列表的最后一个元素。
public E pop(); // 从此列表所表示的堆栈处弹出一个元素。
public void push(E e); // 将元素推入此列表所表示的堆栈。
public boolean isEmpty(); // 如果列表不包含元素,则返回true。
LinkedList<String> link = new LinkedList<String>();
link.addFirst("abc1"); // 添加元素
HashSet
是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的(即存取顺序 不一致)
HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一性 的方式依赖于, hashCode 与 equals 方法
HashSet接口中常用方法
public boolean add(E e); // 把给定的对象添加到当前集合中
public void clear(); // 清空集合中所有的元素
public boolean remove(E e); // 把给定的对象在当前集合中删除。
public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
public boolean isEmpty(); // 判断当前集合是否为空。
public int size(); // 返回集合中元素的个数。
public Object[] toArray(); // 把集合中的元素,存储到数组中。
HashSet<String> set = new HashSet<String>();
set.add("abc"); // 添加元素
LinkedHashSet
保证元素唯一,和元素存放进去是有顺序的
HashSet接口中常用方法
public boolean add(E e); // 把给定的对象添加到当前集合中
public void clear(); // 清空集合中所有的元素
public boolean remove(E e); // 把给定的对象在当前集合中删除。
public boolean contains(E e); // 判断当前集合中是否包含给定的对象。
public boolean isEmpty(); // 判断当前集合是否为空。
public int size(); // 返回集合中元素的个数。
public Object[] toArray(); // 把集合中的元素,存储到数组中。
Set<String> set = new LinkedHashSet<String>();
set.add("abc"); // 添加元素
Map集合
概述
Map 中的集合,元素是成对存在的(理解为夫妻),每个元素由键与值两部分组成,通过键可以找对所对应的 值。
需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
Map常用子类
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
Map接口中的常用方法
public V put(K key, V value); // 把指定的键与指定的值添加到Map集合中。
public V remove(Object key); // 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。
public V get(Object key); // 根据指定的键,在Map集合中获取对应的值。
public Set<K> keySet(); // 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet(); // 获取到Map集合中所有的键值对对象的集合(Set集合)
public K getKey(); // 获取Entry对象中的键。
public V getValue(); // 获取Entry对象中的值
HashMap<String, String> map = new HashMap<String, String>();
map.put("黄晓明", "杨颖"); // 添加元素到集合
Set<String> keys = map.keySet(); // //获取所有的键 获取键集
Set<Entry<String,String>> entrySet = map.entrySet(); // // 获取 所有的 entry对象 entrySet
String key = entry.getKey(); // 获取键
String value = entry.getValue(); // 获取值
Map集合遍历键找值方式
键找值方式:即通过元素中的键,获取键所对应的值
LinkedHashMap
HashMap基础上保证了数据的顺序
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
Arrays
概述
包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法
操作数组的方法
int[] arr = {2,34,35,4,657,8,69,9};
String s = Arrays.toString(arr); // 数组内容转为字符串
Arrays.toString(arr) // 升序排序
Math
概述
包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
基本运算的方法
double d1 = Math.abs(‐5); //返回 double 值的绝对值 d1的值为5
double d1 = Math.ceil(3.3); //返回大于等于参数的最小的整数。 d1的值为 4.0
double d1 = Math.floor(3.3); //返回小于等于参数最大的整数 d1的值为3.0
long d1 = Math.round(5.5); //返回最接近参数的 long。(相当于四舍五入方法) d1的值为6.0