集合框架的工具类
Arrays
—将数组转为其他形式
Arrays:集合框架的工具类,里面的方法都是静态的。
(1) Arrays.toString(arr) 将数组转为字符串。
(2) Arrays.asList(arr) 将数组转为List集合。
好处:可以使用集合的方法操作数组中的元素。注意:数组的长度是固定的,所以对于集合的增删方法是不可以使用的。否则会发生异常。
public class ArraysDemo { public static void main(String[] args) { String[] arr={"3","1"}; System.out.println(Arrays.toString(arr)); //输出[3, 1] List<String> list=Arrays.asList(arr); //数组转集合 boolean b=list.contains("1"); System.out.println(b); } //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(", "); } } }
—排序和查找
sort、binarySearche、copyOfRange
toArray—将List集合转成数组形式
ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法:
1.list.toArray();
2.list.toArray(T[] a);
对于第一个重载方法,是将list直接转为Object[] 数组;
第二种方法是将list转化为你所需要类型的数组,当然我们用的时候会转化为与list内容相同的类型。
String[] arr=list.toArray(new String[list.size()]); //传入指定的字符串数组
Collections
1.排序操作
2.查找替换
forEach
foreach语句:
* 格式:
* for(类型 变量:Collection集合(数组))
* {
* }
*
* 传统for和高级for的区别?
* 传统for可以完成对语句执行很多次,因为可以定义控制循环变量和条件
*
* 高级for是一种简化形式。
* 它必须有遍历的目标。该目标是数组,要么是Collection集合。
*
* 对数组的遍历如果仅仅是获取数组中的元素,可以使用高级for
* 如果要对数组的角标进行操作建议使用传统for。
可以使用高级for遍历map集合吗?
不能直接使用,但是可以将map转成单列的set后再使用。
Map<Integer,String>map=new HashMap<Integer,String>(); map.put(1, "haha"); map.put(2, "hehe"); for(Map.Entry<Integer, String> me:map.entrySet()){ Integer key=me.getKey(); String value=me.getValue(); System.out.println(key+":"+value); }