Java基础-----Collections与Arrays工具类

package cn.itcast.util;


import java.util.ArrayList;
import java.util.Collections;


/*
集合的工具类(Collections):


笔试题目:说出Collection与Collections的区别:


Collection是一个单例集合的根接口
Collections是操作集合对象的工具类




Collections:常见方法:
1,对list集合进行排序。
sort(list); 
//对list进行排序,其实使用的事list容器中的对象的compareTo方法
sort(list,comaprator);
//按照指定比较器进行排序
2, 对list进行二分查找:
前提该集合一定要有序。
int binarySearch(list,key);
//必须根据元素自然顺序对列表进行升级排序
//要求list 集合中的元素都是Comparable 的子类。
int binarySearch(list,key,Comparator);
3,对集合取最大值或者最小值。
max(Collection)
max(Collection,comparator)
min(Collection)
min(Collection,comparator)
4,对list集合进行反转。
reverse(list);
5,可以将不同步的集合变成同步的集合。
Set synchronizedSet(Set<T> s)
Map synchronizedMap(Map<K,V> m)
List synchronizedList(List<T> list)


 */
public class Demo1 {


public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(12);
list.add(2);
list.add(19);

//排序
Collections.sort(list);

System.out.println("元素所在的索引值是:"+Collections.binarySearch(list, 12));
System.out.println("最大值"+Collections.max(list));
System.out.println("最小值:"+Collections.min(list));
Collections.reverse( list);
System.out.println(list);
list = (ArrayList<Integer>) Collections.synchronizedList(list);



}


}




package cn.itcast.util;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;


class Person{
String name;
int age;

public Person(String name,int age){
this.name = name;
this.age = age;
}


@Override
public String toString() {

return "{姓名:"+this.name +"年龄:"+this.age+"}";
}


}


class AgeComparator implements Comparator<Person>{


@Override
public int compare(Person o1, Person o2) {

return o1.age - o2.age;
}

}
public class Demo2 {
//如果集合存储的都是不具备自然顺序的元素,那么排序需要传入比较器
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("狗娃",12));
list.add(new Person("张三",22));
list.add(new Person("铁蛋",2));

Collections.sort(list,new AgeComparator());
System.out.println("找到的索引值是::"+Collections.binarySearch(list,new Person("铁蛋",2), new AgeComparator()));
System.out.println("最大值:"+Collections.max(list, new AgeComparator()));
System.out.println("最小值:"+Collections.min(list, new AgeComparator()));
System.out.println("集合的元素:"+list);


}


}




package cn.itcast.util;


import java.util.Arrays;
import java.util.List;


/*
 数组的工具类(Arrays)
 
 
 1,二分查找,数组需要有序
binarySearch(int[])
binarySearch(double[])


2,数组排序
sort(int[])
sort(char[])……
2, 将数组变成字符串。
 toString(int[])
3, 复制数组。
 copyOf(boolean[] original,int newLength);
 
 original:原数组
 newLength:新数组的长度
 
4, 复制部分数组。
copyOfRange(boolean[] original,int from,int to):


original:原数组
from:开始拷贝的索引值
to: 结束的索引值


5, 比较两个数组的元素是否一致。
equals(int[],int[]);
6, 将数组变成集合。
List asList(T[]);
这样可以通过集合的操作来操作数组中元素,
但是不可以使用增删方法,add,remove。因为数组长度是固定的,会出现
UnsupportOperationExcetion。
可以使用的方法:contains,indexOf。。。
如果数组中存入的基本数据类型,那么asList会将数组实体作为集合中的元素。
如果数组中的存入的引用数据类型,那么asList会将数组中的元素作为集合中
的元素。


 */
public class Demo3 {


public static void main(String[] args) {
Integer[] arr = {10,8,6,9};
Integer[] arr4 = {10,8,9,6};
Integer[] arr2 = Arrays.copyOf(arr, 6);
Integer[] arr3 = Arrays.copyOfRange(arr, 1, 3);
System.out.println("arr2拷贝后的数组是:"+Arrays.toString(arr2));//拷贝后的数组是:[10, 8, 6, 9, null, null]  如果是int类型的后面补两个0


System.out.println("arr3拷贝后的数组是:"+Arrays.toString(arr3));//拷贝后的数组是:[8, 6]

System.out.println("判断两个数组对应位置的元素是否完全一致:"+Arrays.equals(arr, arr2));

System.out.println("判断两个数组对应位置的元素是否完全一致:"+Arrays.equals(arr, arr4));
   List<Integer> list = Arrays.asList(arr);//把数组变集合
   //list.toArray();//把集合变数组
   System.out.println(list);
   

}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值