(黑马程序员)学习笔记,集合共有方法

来源:互联网 发布:中美战争知乎 编辑:程序博客网 时间:2024/06/13 23:50

下边是一些常见的集合的静态方法

可以通过静态导入(import static java.util.Collections.*; import static java.util.Arrays.*)的方式使用,也可以直接用类名调用

package collection;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.TreeSet;/** * 1.方法的参数是object,以便于接收任意类型的对象 * 2.集合中存储的都是对象的引用(地址) * @author asus * Collection * |--List:元素是有序的,元素可以重复,因为该集合体系有索引 * |--ArrayList 数组式结构,查询更改速度快(根据角标查询),但是添加和删除速度慢(数据越多越明显),线程不同步 * |--LinkedList 链表式结构,查询速度慢,但是添加删除元素速度快 * |--Vector 数组式结构(最早出现的容器),功能同ArrayList,线程同步(但是多线程时,仍然会使用加锁的ArrayList代替),与ArrayList不同的是当添加新数据需要扩大空间时,会翻倍扩大空间,而不是根据需要 * |--Set:元素无序(存入和取出的顺序不一定一致),元素不可重复,没有索引 * |--HashSet 使用哈希表作为存储方式,通过先判断哈希值(HashCode),然后再判断元素值,保证元素的唯一性,线程不同步 * 如果存入自定义对象,需要重写equals(obj)方法和hashCode()方法 * |--TreeSet 二叉树结构,默认进行先序遍历排序,通过compareTo()方法return 0;,来判断元素是否唯一 * 如果存入自定义对象,需要重写compareTo(obj)方法 */public class CollectionDemo {public static void main(String[] args) {testArrayList();}//创建一个集合容器,使用Collection接口的子类,ArrayListpublic static void testArrayList(){//Collections,共有方法ArrayList<String> al3 = new ArrayList<String>();al3.add("zz");al3.add("dda");al3.add("ww");al3.add("z");al3.add("sdaf");//collection-sort,排序System.out.println("collection-sort:原顺序"+al3);Collections.sort(al3);System.out.println("collection-sort:排序后"+al3);//collection-max,获取最大值String max = Collections.max(al3);System.out.println("al3集合中的最大值是:"+max);//collection-binarySearch,折半查找int index = Collections.binarySearch(al3,"z");System.out.println("al3集合中查找“z”的位置是:"+index);//collection-fill,替换(默认会替换集合中所有元素)//使用subList(start,end)替换指定部分的元素System.out.println("al3替换前是:"+al3);List<String> subAl3 = al3.subList(1, 3);Collections.fill(subAl3, "pp");System.out.println("al3替换后是:"+al3);//collection-replaceAll,替换指定元素Collections.replaceAll(al3, "pp", "bb");System.out.println("al3再次替换后是:"+al3);//collection-reverse,反转Collections.reverse(al3);System.out.println("al3反转后是:"+al3);//collections.reverseOrder([可添加比较器]),提供反转的比较器TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());ts.addAll(al3);System.out.println("ts倒序输出:"+ts);//collections.shuffle,随机排序Collections.shuffle(al3);System.out.println("第1次随机排列al3集合中的内容:"+al3);Collections.shuffle(al3);System.out.println("第2次随机排列al3集合中的内容:"+al3);//Arrays.asList(数组),将数组转换成集合String[] arr = {"abc","abd","bce"};List<String> list = Arrays.asList(arr);System.out.println("数组转换成集合后是:list = "+list.toString());}}

这是对之前的集合学习的补充

0 0
原创粉丝点击