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

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

可以通过静态导入(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接口的子类,ArrayList
	public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值