集合框架中的工具类
来源:互联网 发布:下列网络系统安全原则 编辑:程序博客网 时间:2024/06/13 00:43
集合框架的工具类
Collections
1. 排序
public static void sortDemo()
{
List<String>list = new ArrayList<String>();
list.add("abced");
list.add("acbde");
list.add("hh");
list.add("xbb");
list.add("ff");
System.out.println(list);
Collections.sort(list,new MyComparator());
System.out.println(list);
}
2. 折半查找
publicstatic void binarySearchDemo()
{
List<String>list = new ArrayList<String>();
list.add("abced");
list.add("acbde");
list.add("hh");
list.add("xbb");
list.add("ff");
list.add("a");
//排序
Collections.sort(list);
System.out.println(list);
//折半查找
intindex = Collections.binarySearch(list, "ab");
intindex_half = halfSearch(list, "ab");
System.out.println("index=" + index);
System.out.println("index_half=" + index_half);
}
3. 最值
public static void maxDemo()
{
List<String> list = newArrayList<String>();
list.add("abced");
list.add("acbde");
list.add("hh");
list.add("xbb");
list.add("ff");
Collections.sort(list,new MyComparator());
System.out.println(list);
String max = Collections.max(list,new MyComparator());
System.out.println("max="+max);
}
4. 替换
Collections.fill( ): 将集合中所有的元素替换成指定元素
//自定义 fill方法,把指定部分元素替换掉
public static void myFill(List<String>list, int start, int end, String str)
{
if(start< 0 || end > list.size()-1)
thrownew RuntimeException("区间输入有误");
for(inti = start; i <= end; i++)
{
list.set(i,str);
}
}
5. 洗牌(随机排序)
//洗牌,打乱顺序
publicstatic void shuffleDemo()
{
List<String> list = newArrayList<String>();
list.add("abced");
list.add("hh");
list.add("xbb");
list.add("ff");
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
}
6. 逆置
public static void reverseOrderDemo()
{
//TreeSet<String> treeSet = newTreeSet<String>(Collections.reverseOrder());//new MyComparator()
TreeSet<String> treeSet = newTreeSet<String>(Collections.reverseOrder(new MyComparator()));
treeSet.add("abced");
treeSet.add("hh");
treeSet.add("aa");
treeSet.add("xbb");
treeSet.add("f");
for(Iterator<String> iter =treeSet.iterator(); iter.hasNext(); )
{
System.out.println(iter.next());
}
}
Arrays:
用于操作“数组”的工具类。里面都是静态方法。
---Arrays.toString(array)
---asList(array):将数组转换成List集合
把数组变成List集合的好处:可以使用集合的思想和方法来操作数组中的元素。
但是,将数组变成集合后,不可以使用集合的增删方法,因为数组的长度是固定的
1. toString()方法
publicstatic void toStringDemo()
{
int[] arr = {2, 3, 4};
Stringstr = Arrays.toString(arr);
System.out.println(str);
}
2. asList()方法,数组变成集合
public static void asListDemo()
{
String [] arr ={"a", "bc", "def"};
List<String>list = Arrays.asList(arr);
System.out.println(list);
/*
如果数组中的元素是对象,变成集合时,直接转换成集合中的元素,
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
*/
int [] nums = {1,2, 3};
List<int[]>list2 = Arrays.asList(nums);
System.out.println(list2);
Integer [] nums2= {1,2,3};
List<Integer>list3 = Arrays.asList(nums2);
System.out.println(list3);
}
Collection接口中的toArray()方法
为什么要将集合变成数组??
为了限定对元素的操作,不需要进行增删了。
public static void collectionToArray()
{
ArrayList<String>arrList = new ArrayList<String>();
arrList.add("hh");
arrList.add("ff");
arrList.add("bb");
//集合变数组,注意指定数组的长度
String [] array =arrList.toArray(new String [arrList.size()]);
//数组变字符串
System.out.println(Arrays.toString(array));
}
3. 常用数学函数
publicstatic void powDemo()
{
//pow(a,b)返回a的b次幂
doubleresult = Math.pow(2, 3);
System.out.println("pow(2,3) = " + result);
}
publicstatic void randomDemo()
{
//随机数
for(intcount = 0; count < 10; count++)
{
intnum = (int)(Math.random()*10 + 1);
System.out.println(num);
}
}
publicstatic void demo1()
{
doublenum1 = Math.ceil(12.26);//向右取整
System.out.println("ceil_12.26= "+num1);
doublenum2 = Math.floor(12.26);//向左取整
System.out.println("floor_12.26= "+num2);
doublenum3 = Math.round(12.26);//四舍五入
doublenum4 = Math.round(12.66);
System.out.println("round_12.26= "+num3+" ; "+"round_12.66 = "+num4);
}
Calendar:日历
import java.util.*;
import java.text.*;//日期格式化需要
public class DateDemo
{
publicstatic void CalendarDemo()
{
//获取年、月、日、星期
Calendarcald = Calendar.getInstance();
String[] months = {
"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
String[] weeks = {
"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
intmon_num = cald.get(Calendar.MONTH);
intweek_num = cald.get(Calendar.DAY_OF_WEEK)-1;
System.out.print(cald.get(Calendar.YEAR)+"年 ");
System.out.print(months[mon_num]);
System.out.print(cald.get(Calendar.DAY_OF_MONTH)+"日 ");
System.out.println(weeks[week_num]);
}
publicstatic void printCalendar(Calendar cald)
{
String[] months = {
"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
String[] weeks = {
"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
intmon_num = cald.get(Calendar.MONTH);
intweek_num = cald.get(Calendar.DAY_OF_WEEK)-1;
System.out.print(cald.get(Calendar.YEAR)+"年 ");
System.out.print(months[mon_num]);
System.out.print(cald.get(Calendar.DAY_OF_MONTH)+"日 ");
System.out.println(weeks[week_num]);
}
publicstatic void CalendarDemo2()
{
//获取自定义时间 add(int field, int amount)
Calendarcald = Calendar.getInstance();
/*
设置时间
cald.set(2014,2, 15);
*/
cald.add(Calendar.YEAR, 4);
cald.add(Calendar.DAY_OF_MONTH,-2);
printCalendar(cald);
}
publicstatic void basicDemo()
{
Datedate = new Date();
System.out.println(date);
//将模式封装到SimpleDateFormat对象中
SimpleDateFormatsimpleDF = new SimpleDateFormat("yyyy年MM月dd日 Ehh:mm:ss");
//调用format方法让模式格式化指定Date对象
Stringtime = simpleDF.format(date);
System.out.println(time);
}
publicstatic void main(String[] args)
{
CalendarDemo2();
}
}
高级for循环
----格式:
for(数据类型变量名:被遍历的集合(Collection)或者数组)
{
}
对集合进行遍历,只能获取集合元素,不能对集合进行操作
传统for循环和高级for循环的区别:
后者有一个局限性,必须有被遍历的目标。
publicstatic void forDemo()
{
ArrayList<String>arrList = new ArrayList<String>();
arrList.add("hh");
arrList.add("bb");
arrList.add("ff");
for(Stringstr : arrList)//高级for
{
System.out.print(str+"");
}
System.out.println("\n"+"--------------");
}
可变参数
其实就是一种数组参数的简写形式。隐式将这些参数封装成了数组。
注意:可变参数一定定义在其他参数之后
public class ParamMethod
{
publicstatic void demo(int ... nums)
{
System.out.println(nums);
System.out.println(nums[2]);
System.out.println(nums.length);
}
publicstatic void demo(String ... str)
{
System.out.println(str[2]);
System.out.println(str.length);
}
//可变参数一定定义在最后
publicstatic void demo(String str, int ... args)
{
System.out.print(str+":");
for(inti = 0; i < args.length; i++)
{
System.out.print(args[i]+ " ");
}
}
publicstatic void main(String[] args)
{
demo(1,2, 3, 4, 5);
System.out.println("---------");
demo("hh","bb", "ff");
System.out.println("---------");
demo("love",120508, 120702, 121226);
}
}
- 集合框架中的工具类
- 集合框架中的工具类
- 集合框架的工具类
- Collections工具类(集合框架)
- 集合框架的工具类
- java--集合框架工具类
- 集合框架工具类COllections
- 集合框架-工具类-Collections
- 集合框架的工具类
- Collections集合框架工具类
- Collections集合框架工具类
- day19_Map集合+集合框架工具类
- 黑马程序员——集合——Map——集合框架中的工具类
- 黑马程序员-day17-集合框架中的工具类(Collections和Arrays)
- 黑马程序员—Java集合框架及Java中的几个工具类
- Java基础之集合框架--Collections工具类中的sort()方法
- 黑马程序员_集合框架工具类
- 黑马程序员_集合框架工具类
- Map集合
- 注册js/jquery验证
- UIImagePickerController使用
- 性能测试相关
- static使用总结
- 集合框架中的工具类
- Hibernate标识符属性(主键)生成策略全析
- ajax返回乱码处理方法
- 面试中的Singleton
- socket实现
- HTTP method GET is not supported by this URL
- 无法打开Windchill中的模型(下载失败)
- 四叉树管理场景
- 分享下自己的lucene工具类