鸟哥Java学习之集合框架工具类--常用对象API

1 Collections(操作集合的工具类)
排序
    sort方法
原理:泛型限定,可以对任何具有CompareTo方法的进行排序(接受Comparable及其子类,因为他们才具有CompareTo方法)
    还一种比较,带比较器:sort(list,new comparatorBylength())
    比较器comparatorBylength自己写的
package cn.itcast.toolclass.collections;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class CollectionsDemo {
 
public static void main(String[] args) {
/*
* Collections:是集合框架的工具类,里面的方法都是静态的
*/
demo_1();
}
 
public static void demo_1(){
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("rfhj");
list.add("tjyjhng");
list.add("abctt");
System.out.println(list);
//对list集合进行指定顺序排序
Collections.sort(list);
System.out.println(list);
//带比较器
Collections.sort(list, new ComparaByLength());
System.out.println(list);
 
}
}
package cn.itcast.toolclass.collections;
 
import java.util.Comparator;
 
public class ComparaByLength implements Comparator<String> {
 
@Override
public int compare(String o1, String o2) {
int temp = o1.length()-o2.length();
return temp==0?o1.compareTo(o2):temp;
}
 
}
折半查找:必须是有序的才能用 BinarySort()
最值:能够进行比较 max() min()
逆序:TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());
        //TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new ComparaByLength()));
替换:Collections.replaceAll(list"abc""cba");
      fill():将集合中的值全部替换成同一值,可用于初始化
随机:shuffle():将集合中元素随机摆放,例如扑克牌洗牌
重点
将非同步集合转变为同步集合:synchronizedCollection()
synchronizedList(),synchronizedSet()
    原理:加锁

    建个工具类,把上面的类放进去成为内部类:
     同上

2.Arrays(操作数组的工具类)
sort()
equals()
deepequals()
fill()
toString()
package cn.itcast.toolclass.collections;
 
import java.util.Arrays;
 
public class ArraysDemo {
 
public static void main(String[] args) {
/*
* Arrays:是数组的工具类,里面的方法都是静态的
*/
int[] arr={3,5,8,8,0};
System.out.println(Arrays.toString(arr));
 
}
//toString经典实现
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
 
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) { //中间省略条件判断,提高效率
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
 
}
重点:
    asList():将数组转成List集合,可用的方法多很多,用集合中方法操作数组。但是,集合中的增删方法不可,因为改变了数组长度,否则会发生异常。
   注意: 如果数组中的元素是对象,转成集合时,直接将数组中的元素作为集合中的元素存储
    如果数组中元素是基本数据类型数值,那么会将该数组作为集合中的元素存储,如下,如果是Integer[],输出[3,5,8,8,0]
 public static void demo(){
        int[] arr={3,5,8,8,0};      
        List<int[]> list = Arrays.asList(arr);
        System.out.println(list);
    } 
输出结果:[[I@15db9742] 

    集合转数组:将操作方法进行限定,不允许增删
            toArray():返回的数组中元素是Object
            toArray(数组):返回的数组中元素类型与传入一样
该方法需要传入一个指定类型的数组,大小怎么定义?
    如果长度小于集合,会创建一个同类型并和集合大小一致的数组,大于的话使用指定的数组,其他位置为null,建议设置与集合大小一致
   
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/paomojj1/article/details/51559197
个人分类: Java
上一篇鸟哥Java学习之集合框架--常用对象API
下一篇鸟哥Java学习之IO流
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭