【java】 编码日志 2019

java 设置日期 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d  = null;
//这里会有一个异常,所以要用try catch捕获异常
try {
 d  = sdf.parse("2017-11-06");
}catch (Exception e){
e.printStackTrace();
}

 

java Arrays  List  合并,去重,排序

/***
通过查看Arrays类的源码可以知道,asList返回的List是Array中的实现的内部类,而该类并没有定义add和remove方法
**/

List<String> newYgsx =   new ArrayList(Arrays.asList(ygxxEntity.getcYgsx().split(",")));
//合并
newYgsx.addAll(Arrays.asList(entity.getcYgsx().split(",")));
//去重
Set<String> set = new HashSet<>(newYgsx);
newYgsx = new ArrayList<>(set);
//排序
Collections.sort(newYgsx, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
});

java List  合并
https://www.cnblogs.com/Luouy/p/6482733.html

Arrays.asList()

  1. 该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)
  2. 该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
  3. 不支持add和remove方法

ArrayList

  1. ArrayList就是传说中的动态数组
  2. 动态的增加和减少元素
  3. 实现了ICollection和IList接口
  4. IsSynchronized属性指示当前的ArrayList实例是否支持线程同步,
  5. ArrayList.Synchronized静态方法则会返回一个ArrayList的线程同步的封装。
  6. Count属性是目前ArrayList包含的元素的数量,这个属性是只读的。
  7. Capacity属性是目前ArrayList能够包含的最大数量


ps1

  1. ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。
  2. ArrayList里面添加和修改元素,都会引起装箱和拆箱的操作,频繁的操作可能会影响一部分效率。
  3. 正确的预估可能的元素,并且在适当的时候调用TrimSize方法是提高ArrayList使用效率的重要途径。


ps2

  1. Add方法用于添加一个元素到当前列表的末尾
  2. AddRange方法用于添加一批元素到当前列表的末尾
  3. Remove方法用于删除一个元素,通过元素本身的引用来删除
  4. RemoveAt方法用于删除一个元素,通过索引值来删除
  5. RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除
  6. Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动
  7. InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动
  8. ToArray方法把ArrayList的元素Copy到一个新的数组中。
/*******
每当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,
如果是,它就会以当前容量的两倍来重新构建一个数组(临界值操作影响速率)
一个可能有200个元素的数据动态添加到一个以默认16个元素大小创建的ArrayList中,将会经过:
16*2*2*2*2 = 256/
*************/
ArrayList List = new ArrayList( 210 ); //正确的预估可能的元素  默认大小  16

    
HashSet

  1. HashSet天生就是为了提高查找效率的
  2. HashSet 散列表的内部结构
  3. HashSet不能重复存储equals相同的数据 。原因就是equals相同,数据的散列码也就相同(hashCode必须和equals兼容)
  4. HashSet的存储是无序的 ,没有前后关系,他并不是线性结构的集合。
  5. hashCode方法必须与equals方法向兼容。

查找原理:

  1. 直接根据数据的散列码和散列表的数组大小计算除余后,就得到了所在数组的位置,然后再查找链表中是否有这个数据即可。

Collections.sort()

  1. 若一个类实现了Comparable接口,就意味着“该类支持排序”。

Collections.sort(list, new PriceComparator())

  1. 需要排序的list
  2. 比较器,实现Comparator接口的类,返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值