码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA 16(集合框架工具类)

时间:2015-09-30 17:47:20      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

Collections :工具类,专门对集合进行操作的。所有方法都是静态的,构造方法是私有的,不可以创建对象,通过Collections.xxx();调用工具类中的方法。
 
 
1,    
Collections.sort(); //对集合进行排序,List可以,Set不可以,因为有自动排序的TreeSet,其实是调用对象的Compare方法,如果想要排序自定义对象,
sort后面要传入比较器。
  Collections.sort(list,new Strlen());  
下面有举例说明
 
2,
Collections.max();//取出最大值,也是根据Compare方法来比较的。
也可以写 Collections.max(list,new Strlen()); 
 
3,
int c =Collections.binarySearch(list,"kk"); //二分查找,返回元素角标,如果不存在该元素,会返回负数,位置三也可以传入比较器,在接下来调用比较器的compare方法。
 
4,
Collections.fill(list, "pp");//将集合中的元素全部换为“pp”
sop(list);
 
5,
Collections.replaceAll(list,old_value,new_value);//将集合中的老值全部换为新值。
 
6,
Collections.reverse(list);//翻转整个list
 
7,
Collections.reverseOrder() ;//返回一个Comparator对象,会倒序。
 TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder()); 即可
也可以将现有比较器强行逆转,以下面例子中的自定义比较器为例。
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new Strlen()));
 
8,
List ls =Collections.synchronizedList(List ls);返回一个线程安全的list
 
9,Collections.swap(list.index1,index2);//调换两个位置的元素。
 
10,Collections.shuffle(list);  将集合元素随机排列。
 
 
Arrays:操作数组工具类,里面包含了一大堆静态方法。
 
1,
Arrays.sort(l);
Arrays.sort(l,from,to);有很多和上面相同,只不过把集合换为数组了。
 
2,Arrays.toString(a);//返回字符串
 
3,List ArrayList.asList(a); //将数组变为list集合,但是不可以使用集合的增删方法。因为数组的长度是固定的。仅仅是将数组的引用放入了集合中。
如果数组中的元素都是对象,那么数组中的元素就直接转成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素
 
 
集合变数组,T [] collection.toArray(T [] a); //下面有举例说明,长度最好要等于arr的长度。
 
 
高级for循环
格式
for(数据类型 变量名 :被遍历的集合或数组)
{
sop(变量名);但不可修改,只能取出,原理上还是Iterator
}
import java.util.*; 
 
public class Test {
 
 public static void main(String[] args)
 {
  ArrayList<String> li = new ArrayList<String> ();
  li.add("abc1");
  li.add("abc2");
  li.add("abc3");
  for(String s:li)
  {
   sop(s);
  }
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
 
 
可变参数
可变参数一点要定义在参数列表的最后边。
import java.util.*;
 
public class Test {
 
 public static void main(String[] args)
 {
  show(1,2,3,5,8,6,5,5,65,6,6,6,6,7);
 }
 
 public static void show(int ...arr)
 {
  for(int x=0;x<arr.length;x++)
   sop(arr[x]);
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
静态倒入
 
import static java.util.Arrays*;
可以直接写sort(array);
当方法重名时,知道所属的对象或者类。
 
 
 
 
自定义比较器举例:比较字符串长度。
 
import java.util.*;
public class Test {
 
 public static void main(String[] args)
 {
  sort();
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
 
 public static void sort()
 {
  List<String> list = new ArrayList<String>();
  list.add("abcd");
  list.add("aaa");
  list.add("zzz");
  list.add("kk");
  list.add("abcd");
  list.add("qq");
  list.add("z");
  sop(list);
  Collections.sort(list,new Strlen());
  sop(list);
 }
}
class Strlen implements Comparator<String>
{
 public int compare(String s1,String s2)
 {
  int num = s1.length()-s2.length();
  if(num==0)
   return s1.compareTo(s2);
  else
   return num;
 }
}
 
 
集合变数组:
 
import java.util.*;
public class Test {
 public static void main(String[] args)
 {
  ArrayList<String> li = new ArrayList<String> ();
  li.add("abc1");
  li.add("abc2");
  li.add("abc3");
 
  String arr [] = li.toArray(new String [5]);
  sop(Arrays.toString(arr));
 }
 public static void sop(Object obj)
 {
  System.out.println(obj);
 }
}
 

JAVA 16(集合框架工具类)

标签:

原文地址:http://www.cnblogs.com/hitxx/p/4849602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!