Java简单算法

  • Collections API
package algorithm;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Collections_test {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        for (int i = 0; i < 20; i++)
            numbers.add(i);
        //根据元素的 自然顺序返回给定集合的最大元素
        System.out.println(Collections.max(numbers));
        //根据元素的 自然顺序返回给定集合的最小元素
        System.out.println(Collections.min(numbers));
        //将一个列表中的所有元素复制到另一个列表中,深拷贝
        List<Integer> copy_list = new ArrayList<>();
        for (int i = 0; i < 20; i++)
            copy_list.add(null);
        Collections.copy(copy_list, numbers);
        System.out.println(copy_list);
        copy_list.remove(1);
        System.out.println(copy_list);
        System.out.println(numbers);
        //用指定的元素替换指定列表的所有元素
        Collections.fill(copy_list, 5);
        System.out.println(copy_list);
        //将所有指定的元素添加到指定的集合中,如果集合改变了则返回true
        Collections.addAll(copy_list, 1,2,3);
        System.out.println(copy_list);
        //用列表替换列表中所有出现的指定值
        Collections.replaceAll(copy_list, 5, 6);
        System.out.println(copy_list);
        //返回指定源列表中第一次出现的指定目标列表的起始位置,如果不存在,则返回-1
        System.out.println(Collections.indexOfSubList(copy_list, new ArrayList<>()));
        //返回指定源列表中指定目标列表最后一次出现的起始位置,如果不存在,则返回-1
        System.out.println(Collections.lastIndexOfSubList(copy_list, new ArrayList<>()));
        //交换指定列表中指定位置的元素
        Collections.swap(numbers, 0, 1);
        System.out.println(numbers);
        //反转指定列表中元素的顺序
        Collections.reverse(numbers);
        System.out.println(numbers);
        //按指定距离旋转指定列表中的元素
        Collections.rotate(numbers, 2);
        System.out.println(numbers);
        //返回指定集合中等于指定对象的元素数
        System.out.println(Collections.frequency(copy_list, 6));
        //如果两个指定的集合没有共同的元素,则返回 true
        System.out.println(Collections.disjoint(numbers, copy_list));
    }
}
  •  其他操作
package algorithm;

import java.util.*;

public class Operate_test {
    public static void main(String[] args) {
        Collection<Integer> coll1 = new ArrayList<>();
        coll1.add(1);
        coll1.add(2);
        coll1.add(3);
        coll1.add(4);
        coll1.add(5);
        Collection<Integer> coll2 = new ArrayList<>();
        coll2.add(4);
        coll2.add(5);
        coll2.add(6);
        coll2.add(7);
        coll2.add(8);
        //从此列表中删除指定集合中包含的所有元素
        coll1.removeAll(coll2);
        System.out.println(coll1);
        //仅保留此列表中包含在指定集合中的元素
        coll1.retainAll(coll2);
        System.out.println(coll1);
        //数组转换为集合
        String[] values = {"a", "b"};
        HashSet<String> hashSet = new HashSet<>(Arrays.asList(values));
        System.out.println(Arrays.toString(values));
        System.out.println(hashSet);
        //集合转换为数组
        Object[] r1 = hashSet.toArray();//返回的是一个Object[]数组,不能改变类型
        System.out.println(Arrays.toString(r1));
        String[] r2 = hashSet.toArray(new String[0]);//可以返回指定的数组类型
        System.out.println(Arrays.toString(r2));
        String[] r3 = hashSet.toArray(new String[hashSet.size()]);//可以构造一个指定大小的数组,不会创建新数组
        System.out.println(Arrays.toString(r3));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值