您的位置:首页 > 编程语言 > Java开发

Java操作集合的工具类

2017-04-18 10:52 411 查看
一、介绍
提供了大量的方法对集合元素进行排序,查询,修改等操作,还提供了将集合对象这职位不可变、对集合对象实现同步控制的方法

二、排序、查找、替换
import java.util.ArrayList;
import java.util.Collections;

public class SortTest {

public static void main(String[] args) {
// TODO 自动生成的方法存根

ArrayList nums = new ArrayList();
nums.add(2);
nums.add(-4);
nums.add(43);
nums.add(0);
nums.add(2);
System.out.println(nums);

Collections.reverse(nums);// 次序反转
System.out.println(nums);
Collections.sort(nums);// 排序
System.out.println(nums);
Collections.shuffle(nums);// 随机排序
System.out.println(nums);

System.out.println("最大  " + Collections.max(nums));
System.out.println("最小  " + Collections.min(nums));
Collections.replaceAll(nums, 0, 1);// 将0替换为1
System.out.println(nums);

System.out.println("元素2在集合中出现的次数  " + Collections.frequency(nums, 2));

Collections.sort(nums);// 排序后进行二分法查询
System.out.println(nums);
System.out.println(Collections.binarySearch(nums, 43));

}

}
三、同步控制
提供了多个synchronizedXxx()方法,可以将指定集合包装成线程同步的集合,从而解决多线程并发访问集合时线程安全的问题。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class SynchronizedTest {

public static void main(String[] args) {
//提供了4种方法

Collection collections=Collections.synchronizedCollection(new ArrayList());
List list=Collections.synchronizedList(new ArrayList());
Set set=Collections.synchronizedSet(new HashSet());
Map map=Collections.synchronizedMap(new HashMap());

}

}


四、设置不可变集合
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class UnmodfiableTest {

public static void main(String[] args) {
// 创建一个空的不可改变的List
List unmodifiableList=Collections.emptyList();
//只有一个元素不可改变的Set
Set unmodifiableSet=Collections.singleton("java");
//创建一个Map
Map score=new HashMap();
score.put("语文", 90);
score.put("数学", 100);
//返回普通Map对象的不可变版本
Map unmodifiableMap=Collections.unmodifiableMap(score);
//以下代码会产生异常
unmodifiableList.add("1234");
unmodifiableSet.add("hello");
unmodifiableMap.put("ahah", 66);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java arraylist hashmap