集合转换为数组
数组转换为集合
package com.lin;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
//集合转成数组
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("hello");
arrayList.add("world");
//第一种 toArray 类型是object类型 长度由集合中的元素确定
Object[] obj = arrayList.toArray();
for (Object o : obj) {
System.out.println(o);
}
//第二种 转成指定是数组 前提:需要我们准备确定类型的数组
//若集合的元素超出数组给定的长度,将以集合为准
String[] strArray = new String[5];
strArray = arrayList.toArray(strArray);
for (String s : strArray) {
System.out.println(s);
}
/*
数组转成集合
*/
int[] array={11,12,13};
List<int[]> list = Arrays.asList(array);
/*
输出后元素只有一个,而且是内存地址,主要原因是
集合只能存储引用数据类型,所以将数组当作引用数据类型,放进集合
如果需要出三个元素,需要类型转成Integer类型
*/
Integer[] array2 = new Integer[]{11,22,33};
List<Integer> list1 = Arrays.asList(array2);
}
}
Collections工具类的使用
专门用来操作集合的工具类.
构造方法私有,禁止创建对象
提供一系列静态方法实现对各种集合的操作具体操作:搜索、复制、排序、线程安全化等
public class TestCollections {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
ArrayList<String> arrayList1 = new ArrayList<>();
//(1)向集合中添加N多个元素 参数1:集合名称 参数2,3,4,...,n添加元素
Collections.addAll(arrayList,"hello","world","java");
System.out.println(arrayList);
//(2)二叉搜索 适用List集合 set不适用,使用前需要排序
Collections.sort(arrayList);
//String类具备了比较大小的能力,默认按因为升序大小排序,可定义外部比较器定义排序规则
Collections.binarySearch(arrayList,"java"); //有,返回索引为1
Collections.binarySearch(arrayList,"html");//无,返回索引为-2 (-2=-(插入点+1)推理出来的插入点1)
//(3)集合拷贝
/**
* 拷贝集合需要注意的地方,如果集合.size()>目标集合.size() 出现IndexOutOfBoundsException 错误
* 拷贝后目标集合的元素将会被覆盖 覆盖从索引0 开始
*/
Collections.copy(arrayList1,arrayList);
//将arrayList的内容拷贝到arrayList1中,如果超出目标集合容量,报错
//解决报错方式 向目标数组添加元素
Collections.addAll(arrayList1,"sql","html","css");
//(4) 填充
/**
* 所有元素都使用html来填充,也就是所有元素替换成html
*/
Collections.fill(arrayList1,"html");
//(5)查找最大与最小元素
System.out.println("查找最大元素"+Collections.max(arrayList));
System.out.println("查找最小元素"+Collections.min(arrayList));
//(6)集合逆序
Collections.reverse(arrayList1);
//(7)线程同步
List<String> list = Collections.synchronizedList(arrayList);
}
}