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

JAVA 并发编程随笔【四】Collections集合工具类(学习并发编程顺带学习)

2017-09-01 16:48 253 查看
一、向已经存在的集合中添加新的元素

//向存在的集合中添加元素
List<String> list = new ArrayList<String>();
//一次添加一个元素
Collections.addAll(list, "asd");
System.out.println(list);
//一次添加多个元素
Collections.addAll(list, "asd","asd");
System.out.println(list);


打印结果:

[asd]
[asd, asd, asd]


二、二进制搜索算法binarySearch,在指定的list列表中查找指定的对象,list列表中存储的对象必须是升序按照自然排序的;

User user = new User(4, "花猫");
List<User> users = new ArrayList<User>();
users.add(new User(34, "黑猫"));
users.add(new User(1, "白猫"));
users.add(new User(23, "梨猫"));
users.add(new User(4, "花猫"));
users.add(new User(6, "紫猫"));
Collections.sort(users);//自然排序
//二进制算法超找
int index = Collections.binarySearch(users, user);
System.out.println(index);

输出的结果是:1

使用比较器来查找,查找的列表必须是按照升序排序的,否则查找的结果是不可预测的

Dog dog = new Dog(23, "梨狗");
List<Dog> dogs = new ArrayList<Dog>();
dogs.add(new Dog(1, "白狗"));
dogs.add(new Dog(4, "花狗"));
dogs.add(new Dog(6, "紫狗"));
dogs.add(new Dog(23, "梨狗"));
dogs.add(new Dog(34, "黑狗"));
//二进制算法超找
int index = Collections.binarySearch(dogs, dog, new Comparator<Dog>() {

@Override
public int compare(Dog dog1, Dog dog2) {
return dog1.getAge().compareTo(dog2.getAge());
}
});
System.out.println("索引"+index);

结果是:索引3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐