12、工具类

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

工具类:将多个类中相同功能的函数抽取到一个新定义的类中,独立封装,以便复用。这个新定义的类就称为工具类。
      从静态化的角度来看,由于工具类中的方法都没有使用到当前方法所属对象的特有数据,所以,应该把工具类中的方法静态化。
       构造方法还是能够被调用以建立工具类对象。为了严谨,工具类不应该有对象产生。工具类中的构造方法要私有化。
【工具类总结】:方法全部静态化,构造方法全部私有化。
下面简单介绍Collections类和Arrays类
Collections类:里面的方法都是方便对Collection进行操作的静态方法,可以通过类名直接调用,而不用建立相应的类的对象。
几个常用的方法:
1、排序:Collections.sort(List list)排序前提:list中的元素必须具有可比性,也就是实现了comparable接口。Collections.sort(Listlist,Comparator com)排序时指定比较器对元素进行排序。
2、Collections.max(List list)前提也元素可以排序,返回值为List中的元素的类型。
3、Collections.binarySearch(Listlist)二分查找,前提是该list已经排好序,返回元素在list中的索引。
4、Collections.fill(List list,T obj)将list中的所有元素替成指定元素。
5、Collections.repalceAll(List list,ToldValue,T newValue),将指定元素的值替换为新值。
6、Collections.reverse(List list)将list中的元素顺序翻转。
7、Collections.reverseOrder()返回一个比较器,该比较器强行逆转了Comparable接口的对象的自然顺序。
8、Collections.reverseOrder(Comparatorcom)返回一个比较器,该比较器强行逆转了指定Comparator所实现的顺序。
9、Collections.shuffle(List l)将list中的元素重新随机排列一次。
10、 synchronizedXxx()将指定的集合转换成线程同步的集合。
11、 Collections.toArray(c)把集合c转换成数组。
方法演示代码:
package collectionTest;
import java.util.*;
class myComparator implements Comparator<Person>
{
 public int compare(Person p1,Person p2)
 {
  int num = p1.getAge()-p2.getAge();
  if(num ==0)
   return p1.getName().compareTo(p2.getName());
  return num;
 }
 
}
public class CollectionsTest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  List<String> l = new ArrayList<String>();
  l.add("abc");
  l.add("def");
  l.add("wed");
  l.add("sdf");
  System.out.println(l);
  Collections.sort(l);//String实现了Comparable接口,使用其默认的自然方法排序。
  System.out.println(l);
  List<Person> pl = new ArrayList<Person>();
  pl.add(new Person("zhang","男",20));
  pl.add(new Person("wang","女",23));
  pl.add(new Person("li","女",52));
  pl.add(new Person("zhao","男",25));
  pl.add(new Person("liu","男",20));
  System.out.println(pl);
  Collections.sort(pl,new myComparator());//用自己定义的比较方法排序
  System.out.println(pl);
  System.out.println(Collections.max(pl,new myComparator()));//查找年龄最大的人。
  System.out.println(Collections.binarySearch(pl, new Person("zhang","男",20)));
 }
 
}
Arrays类:存放对array进行操作的静态方法。,通过类名直接调用。
常用方法:
1、Arrays.toStirng(arr)将数组转换成字符串。
2、Arrays.asList(arr)将数组转换成List集合。把数组编程集合的好处:可以使用集合的思想来操作元素,比如判断元素是否在集合中存在。
注意:1、转变后的List集合不能使用集合的增删方法,会出现UnsupportedOperationException.
2、如果数组中的元素都是对象,那么变成集合时,数组中的元素变成集合中的元素。如果数组中的元素都是基本数据类型,那么转化时会将数组变成集合的一个元素存进集合。
3、Arrays.equals(arr1,arr2)判断两个数组是否相等。
4、Arrays.fill(arr,value)将数组中的所有元素都设置为value。
5、Arrays.sort(arr)对数组中的元素进行排序。
6、Arrays.copyOf(arr,int length)返回arr数组中前length个元素的拷贝。
方法演示代码:
package collectionTest;
import java.util.*;
public class Arraystest {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int[] arr1 = new int[]{1,2,3,4};
  int[] arr2 = new int[]{1,2,3,4};
  if(Arrays.equals(arr1, arr2))//判断两个数组是否相同
   System.out.println("两个数组相等!");
  int[]arr3 = Arrays.copyOf(arr1, 3);//复制数组
  System.out.println(Arrays.toString(arr3));
  Arrays.fill(arr3,1,3, 1);//为数组填充其他值
  System.out.println(Arrays.toString(arr3));
  Arrays.sort(arr3);//对数组进行排序
  System.out.println(Arrays.toString(arr3));
  int dex = Arrays.binarySearch(arr3, 2);//对排序后的数组进行二分查找。
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值