又见面啦,不是小编工作忙偷懒不更,主要是有些例子过于简单,就不拿上来给大家分享了,现在小编刷了一百多例,终于有集齐了几个拿得出来的,来跟大家分享一下。
第一发,排序经典实现,即用TreeSet实现有序存放,该方法的特点的是在数据加入集合中时就会对其进行排序,排序规则就是所谓的自然序列,从小到大,包括数字和字母。但是其中的问题就是,因为是Set结构,如果数据出现重复,那么会造成结果的丢失,在使用时应该注意。另外,本方法也是字符串去重的解决方案之一,但是也有会出现一个问题,那就是去重之后集合中的数据会按照自然序列排序啊有没有。。。对于某些业务场景也许并不算是问题,但是在数据流中,执行数据合并的时候会获取两个表的字段进行去重,这个时候如果采用的TreeSet就会使得表字段乱序,这也是小编在工作当中遇到的问题,好了,下面大家来看一个实例吧。
这里顺便说一些集合的add方法本身也是有返回值的,也就是是否添加成功的状态,为布尔类型,上例中的判断是为了保证最终集合中有十个元素,而toArray方法是比较便捷的转换为数组的操作,在以后大家可以组合在一起灵活使用。
第二个例子,浅度克隆,在编程中,变量与对象的复制是常有的事,我们通常用等号来直接进行复制,这对于基本数据类型的变量是没有问题的,但是对于引用类型的变量,就不能这样做。因为Java对于内存的管理和分配主要分为两部分,即栈和堆。基本类型和引用变量保存在栈中,对象保存在堆中。那么对于引用变量而言,使用等号所代表的含义是修改引用,也就是说对象多了一个引用,两个变量对于对象的影响是共通的,实际上他们操作的是同一对象。所以我们要使用克隆,对于对象进行完全的复制。这对于一些复杂的对象,如实体中包含另外一个实体作为其属性,这个时候创建一个新的对象,再进行取值赋值就会显得很笨拙,那我们来看看是怎样实现的吧,其实很简单,只需要实现一个克隆的接口。
地址信息实体类(封装及构造方法以及重写ToString方法已省略)
员工信息实体类(封装及构造方法以及重写ToString方法已省略)
以上两个实体存在包含关系的,在实际工作当中,如果使用一般的方法很容易造成代码的冗余,而且字段会是两位数以上,使用该方法可以用简洁的代码复制对象。学习了之后要真正用起来哦,好啦,以上就是今天的内容,大家继续加油哦。
对于上一期的概念解释小编可能出现了误差,对于同一变量到底指代谁的问题大家也不用纠结了,记住B^A^B=A就OK啦,在使用交换的时候也是三部曲,AAB,BBA,AAB,收工!