尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Java学习笔记六(集合)

Java学习笔记六(集合) 注释数组固定长度或集合可扩展长度用来存储相同类型的多条数据。集合选择方式1 Collection接口常用Collection接口函数(1) 添加元素boolean add(E e); (2) 添加结合boolean addAll(Collection c); (3) 删除元素boolean remove(Object o); (4) 删除集合boolean removeAll(Collection c); (5) 删除全部void clear(); (6) 获取长度int size(); (7) 判断空boolean isEmpty(); (8) 集合转数组Object[] toArray(); (9) 元素存在判断boolean contains(Object o); (10) 集合元素存在判断boolean containsAll(Collection c); (11) 迭代器Iterator E iterator();1.1 List接口常用List接口函数(1) 添加元素boolean add([int index,] E e); (2) 添加集合boolean addAll([int index,] Collection c); (3) 删除元素boolean remove(int index); (4) 获取元素Object get(int index); (5) 获取下标int indexOf(Object o); (6) 获取元素最后所在下标int lastIndexOf(Object o); (7) 修改元素Object set(int index, Object o); (8) List转数组list.toArray() (9) 数组转ListArrays.toList(数组) (10) 获取迭代器ListIterator E listIterator(); // 在变量集合时会修改元素的情况下使用遍历集合Iterator it list.listIterator(); while (it.hasNext()) { // 判断是否有下一个元素 xx it.next(); // 获取下一个元素并且光标下移 it.remove(); // 删除元素用list.remove(it.next());会异常 }for (Object o list) { // 增强型for循环遍历集合 ... }for (int i; i10; i) { list.get(i); // 获取元素 list.remove(i); // 删除元素为正常继续执行需要 i-- }1.1.1 ArrayList 实现类数据存储有序数据按插入的先后顺序排列查询速度快1.1.2 LinkedList 实现类数据存储有序数据按插入的先后顺序排列随机插入效率高1.1.3 Vector 实现类数据存储有序数据按插入的先后顺序排列线程安全1.2 Set接口1.2.1 HashSet 实现类数据存储无序存储数据值唯一可存null1.2.2 LinkedHashSet 实现类数据存储有序数据按插入的先后顺序排列存储数据值唯一可存null1.2.3 TreeSet 实现类数据存储有序自动升序存储数据值唯一不可存null2 Map接口(1) 添加元素Object put(Object key, Object value) (2) 添加集合void putAll(Map map) (3) 删除元素Object remove(Object key); (4) 删除元素boolean remove(Object key, Object value) (5) 获取元素Object get(Object key) (6) 获取元素Object getOrDefault(Object key, Object defaultValue) (7) 获取长度int size() (8) 判断是否为空boolean isEmpty() (9) 获取键集合Set keySet(); (10) 获取键值对集合Set entrySet(); (11) 获取值集合Collection values(); (12) 键存在判断boolean containsKey(Object key) (13) 值存在判断boolean containsValue(Object value)遍历Map集合SetString keys map.keySet(); for (String key : keys) { // 遍历键集合 ... }SetEntryString, Object entrys map.entrySet(); for (Entry e : entrys) { // 遍历键值对集合 String key e.getKey(); Object obj e.getValue(); }ListString list map.values(); // 变量Map值的集合 for (String val : list) { ... }2.1 HashMap 实现类数据存储无序键唯一可null值可null2.2 LinkedHashMap 实现类数据存储有序数据按插入顺序存储键唯一可null值可null2.3 TreeMap 实现类数据存储有序键升序键唯一不可null值可null2.4 Hashtable 实现类数据存储无序键唯一不可null值不可null线程安全3 排序3.1 默认排序3.1.1 数组排序(1)Arrays.sort(args)String[] args new String[3]; args[0] 2; args[1] 1; args[2] 3; Arrays.sort(args); // 默认排序 1,2,3 for (String str : args) { System.out.println(str); }3.1.2 List排序(1)Collections.sortListString list new ArrayListString(); list.add(3);list.add(1);list.add(2); Collections.sort(list); // 默认排序 1,2,3 for (String str : list) { System.out.println(str); }(2list.sort(null)ListString list new ArrayListString(); list.add(3);list.add(1);list.add(2); list.sort(null); // 默认排序 1,2,3 for (String str : list) { System.out.println(str); }3.2 自定义排序Comparator3.2.1 数组排序(1)Arrays.sort(args, Comparator)注释基本类型数组必须定义为包装类类型// 基本类型必须使用 包装类Integer...等 String[] args new String[3]; args[0] 2; args[1] 1; args[2] 3; Arrays.sort(args, (s1, s2) - s1.compareTo(s2)); // 升序排序 1,2,3 Arrays.sort(args, (s1, s2) - s2.compareTo(s1)); // 降序排序 3,2,1 for (String str : args) { System.out.println(str); }3.2.2 List排序(1)Collections.sort(list, Comparator)ListString list new ArrayListString(); list.add(3);list.add(1);list.add(2); Collections.sort(list, (s1, s2) - s1.compareTo(s2)); // 升序 1,2,3 Collections.sort(list, (s1, s2) - s2.compareTo(s1)); // 降序 3,2,1 for (String str : list) { System.out.println(str); }(2list.sort(Comparator)ListString list new ArrayListString(); list.add(3);list.add(1);list.add(2); list.sort((s1, s2) - s1.compareTo(s2)); // 升序 1,2,3 list.sort((s1, s2) - s2.compareTo(s1)); // 降序 3,2,1 for (String str : list) { System.out.println(str); }3.3 对象排序Comparable排序实现方式对象实现Comparable接口重写compareTo方法。// 对象类 public class Test implements ComparableTest { private String name; private int age; Override public int compareTo(Test t) { // return name.compareTo(t.getName()); // 按名称升序 // return t.getName().compareTo(name); // 按名称降序 // return age - t.getAge(); // 按年龄升序 return t.getAge() - age; // 按年龄降序 } }// 测试类 Test t1 new Test(); t1.setAge(10); t1.setName(S2); Test t2 new Test(); t2.setAge(15); t2.setName(S1); Test t3 new Test(); t3.setAge(18); t3.setName(S3); ListTest list new ArrayListTest(); list.add(t1); list.add(t2); list.add(t3); Collections.sort(list); // 方式1自定义对象compareTo的排序 list.sort(null); // 方式2自定义对象compareTo的排序 for (Test test : list) { System.out.println(test.getName()); }
返回列表