Java基础--集合框架之Collections
2015-04-27 17:45
393 查看
凌风博客原创作品。转载请注明出处:http://blog.csdn.net/q549130180/article/details/45313475
集合框架工具类
Collections
[java] view
plaincopy
import java.util.*;
class CollectionsDemo1
{
public static void main(String[] args)
{
shuffleDemo();
}
public static void shuffleDemo()
{
//将原有顺序打乱,从新存入集合
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.shuffle(list);
sop(list);
}
public static void orderDemo()
{
/*
//反转list集合
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
ts.add("abcde");
ts.add("aaa");
ts.add("kkk");
ts.add("ccc");
*/
//根据长度进行反转
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
ts.add("abcde");
ts.add("aa");
ts.add("k");
ts.add("ccc");
Iterator it = ts.iterator();
while (it.hasNext())
{
sop(it.next());
}
}
public static void replaceAllDemo()
{
//根据元素替换值
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.replaceAll(list,"aaa","pp");
sop(list);
}
public static void fillDemo()
{
//fill方法可以将list集合中所有元素替换成指定元素
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.fill(list,"qq");//将list集合中所有元素替换成qq
sop(list);
}
public static void binarySearchDemo()
{
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
Collections.sort(list);
sop(list);
int index = Collections.binarySearch(list,"aaa"); //返回负数表示不存在
sop("index="+index);
}
public static int halfSearch(List<String> list,String key)
{
//binarySearch实现原理
int max,min,mid;
max = list.size()-1;
min = 0;
while (min<=max)
{
mid = (max+min)>>1; // /2;
String str = list.get(mid);
int num = str.compareTo(key);
if(num>0)
max = mid-1;
else if(num<0)
min = mid+1;
else
return mid;
}
return -min-1;
}
public static int halfSearch2(List<String> list,String key,Comparator<String> cmp)
{
//比较器实现原理
int max,min,mid;
max = list.size()-1;
min = 0;
while (min<=max)
{
mid = (max+min)>>1; // /2;
String str = list.get(mid);
int num = cmp.compare(str,key);
if(num>0)
max = mid-1;
else if(num<0)
min = mid+1;
else
return mid;
}
return -min-1;
}
public static void maxDemo()
{
//方法作用:获取集合中最大值
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
Collections.sort(list);
sop(list);
String max = Collections.max(list/*,new StrLenComparator() //取长度最大*/);
sop("max="+max);
}
public static void sortDemo()
{
//方法作用:给list集合进行排序
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
//Collections.sort(list);//给List集合进行排序
Collections.sort(list,new StrLenComparator());//给List集合按长度进行排序
sop(list);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class StrLenComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
Array:用于操作数组的工具类,里面都是静态方法。
[java] view
plaincopy
import java.util.*;
class ArraysDemo2
{
public static void main(String[] args)
{
//int[] arr = {2,4,5};
//System.out.println(Arrays.toString(arr));
String[] arr = {"abc","cc","kkkk"};
/*
把数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素
注意:将数组变成集合后,不可以使用集合的增删方法,
因为数组的长度是固定的,可以使用contains,get等方法
如果你增删,那么会发生Unsupported{perationException(不支持操作异常)
*/
List<String> list = Arrays.asList(arr);
System.out.println("contains:"+list.contains("cc")); //遍历集合,看cc是否存在
//list.add("qq");//Unsupported{perationException(不支持操作异常)
System.out.println(list);
//-----------------------------------
//int [] nums = {2,4,5};
Integer [] nums = {2,4,5};
List<Integer> li = Arrays.asList(nums);
/*
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
*/
System.out.println(li);
}
}
集合框架工具类
Collections
[java] view
plaincopy
import java.util.*;
class CollectionsDemo1
{
public static void main(String[] args)
{
shuffleDemo();
}
public static void shuffleDemo()
{
//将原有顺序打乱,从新存入集合
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.shuffle(list);
sop(list);
}
public static void orderDemo()
{
/*
//反转list集合
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
ts.add("abcde");
ts.add("aaa");
ts.add("kkk");
ts.add("ccc");
*/
//根据长度进行反转
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
ts.add("abcde");
ts.add("aa");
ts.add("k");
ts.add("ccc");
Iterator it = ts.iterator();
while (it.hasNext())
{
sop(it.next());
}
}
public static void replaceAllDemo()
{
//根据元素替换值
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.replaceAll(list,"aaa","pp");
sop(list);
}
public static void fillDemo()
{
//fill方法可以将list集合中所有元素替换成指定元素
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
Collections.fill(list,"qq");//将list集合中所有元素替换成qq
sop(list);
}
public static void binarySearchDemo()
{
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
Collections.sort(list);
sop(list);
int index = Collections.binarySearch(list,"aaa"); //返回负数表示不存在
sop("index="+index);
}
public static int halfSearch(List<String> list,String key)
{
//binarySearch实现原理
int max,min,mid;
max = list.size()-1;
min = 0;
while (min<=max)
{
mid = (max+min)>>1; // /2;
String str = list.get(mid);
int num = str.compareTo(key);
if(num>0)
max = mid-1;
else if(num<0)
min = mid+1;
else
return mid;
}
return -min-1;
}
public static int halfSearch2(List<String> list,String key,Comparator<String> cmp)
{
//比较器实现原理
int max,min,mid;
max = list.size()-1;
min = 0;
while (min<=max)
{
mid = (max+min)>>1; // /2;
String str = list.get(mid);
int num = cmp.compare(str,key);
if(num>0)
max = mid-1;
else if(num<0)
min = mid+1;
else
return mid;
}
return -min-1;
}
public static void maxDemo()
{
//方法作用:获取集合中最大值
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
Collections.sort(list);
sop(list);
String max = Collections.max(list/*,new StrLenComparator() //取长度最大*/);
sop("max="+max);
}
public static void sortDemo()
{
//方法作用:给list集合进行排序
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bb");
list.add("zz");
list.add("qq");
list.add("dddddd");
sop(list);
//Collections.sort(list);//给List集合进行排序
Collections.sort(list,new StrLenComparator());//给List集合按长度进行排序
sop(list);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class StrLenComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}
Array:用于操作数组的工具类,里面都是静态方法。
[java] view
plaincopy
import java.util.*;
class ArraysDemo2
{
public static void main(String[] args)
{
//int[] arr = {2,4,5};
//System.out.println(Arrays.toString(arr));
String[] arr = {"abc","cc","kkkk"};
/*
把数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素
注意:将数组变成集合后,不可以使用集合的增删方法,
因为数组的长度是固定的,可以使用contains,get等方法
如果你增删,那么会发生Unsupported{perationException(不支持操作异常)
*/
List<String> list = Arrays.asList(arr);
System.out.println("contains:"+list.contains("cc")); //遍历集合,看cc是否存在
//list.add("qq");//Unsupported{perationException(不支持操作异常)
System.out.println(list);
//-----------------------------------
//int [] nums = {2,4,5};
Integer [] nums = {2,4,5};
List<Integer> li = Arrays.asList(nums);
/*
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素。
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。
*/
System.out.println(li);
}
}
相关文章推荐
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- Java基础之集合框架--Collections工具类中的sort()方法
- Java基础之集合框架--Collections工具类之max()方法
- Java基础之集合框架--Collections.binarySearch()
- java基础之集合框架——Collections-同步和非同步
- java基础-API-集合框架-Map、Collections、Arrays
- Java基础之集合框架--Collections的fill()方法和replaceAll()方法
- 黑马程序员 java基础集合框架之集合工具类Collections
- java基础37 集合框架工具类Collections和数组操作工具类Arrays
- Java基础---泛型、集合框架工具类:collections和Arrays (黑马程序员)
- Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)
- Java基础之集合框架--Collections.reverseOrder()
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays
- 黑马程序员——Java基础---泛型、集合框架工具类:Collections和Arrays、JDK 1.5新特性
- java基础——集合框架(Collections、Arrays)
- java基础入门----Collections1 集合框架工具类
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 工具类 Collections and Arrays
- Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例