java中c++一些函数的平替

在 Java 中,与 C++ 的标准库容器(如 std::vectorstd::liststd::deque 等)对应的操作通常通过 ArrayListLinkedListHashSetTreeSet 等类和方法来实现。以下是 Java 中常用的容器操作方法及其与 C++ 操作的对应关系:

  1. sort()

    • C++std::sort()
    • JavaCollections.sort() 或 Arrays.sort()
       

      javaCopy Code

      import java.util.Arrays; import java.util.Collections; import java.util.List; public class SortExample { public static void main(String[] args) { int[] array = {3, 1, 4, 1, 5, 9}; Arrays.sort(array); // 对数组排序 List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9); Collections.sort(list); // 对列表排序 System.out.println(Arrays.toString(array)); System.out.println(list); } }
  2. insert()

    • C++std::vector::insert()
    • JavaList.add(index, element)
       

      javaCopy Code

      import java.util.ArrayList; import java.util.List; public class InsertExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(1, 3); // 在索引1处插入元素3 System.out.println(list); } }
  3. back()

    • C++std::vector::back()
    • JavaList.get(list.size() - 1)
       

      javaCopy Code

      import java.util.ArrayList; import java.util.List; public class BackExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println(list.get(list.size() - 1)); // 获取最后一个元素 } }
  4. end()

    • C++std::vector::end()
    • JavaList.iterator() 或 List.listIterator()
       

      javaCopy Code

      import java.util.ArrayList; import java.util.List; public class EndExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); // 获取指向容器末尾的迭代器 var iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }
  5. empty()

    • C++std::vector::empty()
    • JavaList.isEmpty()
       

      javaCopy Code

      import java.util.ArrayList; import java.util.List; public class EmptyExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); System.out.println(list.isEmpty()); // 判断容器是否为空 } }
  6. find(), find_if()

    • C++std::find(), std::find_if()
    • Java: 使用流(Stream API)的 filter() 和 findFirst()
       

      javaCopy Code

      import java.util.Arrays; import java.util.List; import java.util.Optional; public class FindExample { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); Optional<Integer> result = list.stream() .filter(x -> x > 3) .findFirst(); result.ifPresent(System.out::println); // 查找第一个大于3的元素 } }
  7. copy(), copy_if()

    • C++std::copy(), std::copy_if()
    • Java: 使用流的 collect() 方法或手动循环复制
       

      javaCopy Code

      import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class CopyExample { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<Integer> copiedList = list.stream() .filter(x -> x % 2 == 0) .collect(Collectors.toList()); System.out.println(copiedList); // 复制并过滤出偶数 } }
  8. transform()

    • C++std::transform()
    • Java: 使用流的 map() 方法
       

      javaCopy Code

      import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class TransformExample { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<Integer> transformedList = list.stream() .map(x -> x * 2) .collect(Collectors.toList()); System.out.println(transformedList); // 对元素进行转换(乘以2) } }
  9. merge()

    • C++std::merge()
    • Java: 使用 List.addAll() 或流的 concat()
       

      javaCopy Code

      import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MergeExample { public static void main(String[] args) { List<Integer> list1 = Arrays.asList(1, 3, 5); List<Integer> list2 = Arrays.asList(2, 4, 6); List<Integer> mergedList = new ArrayList<>(list1); mergedList.addAll(list2); System.out.println(mergedList); // 合并两个列表 } }
  10. swap(), swap_ranges()

    • C++std::swap(), std::swap_ranges()
    • Java: 手动实现交换元素
       

      javaCopy Code

      import java.util.ArrayList; import java.util.List; public class SwapExample { public static void swap(List<Integer> list, int i, int j) { Integer temp = list.get(i); list.set(i, list.get(j)); list.set(j, temp); } public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); System.out.println("Before swap: " + list); swap(list, 0, 2); System.out.println("After swap: " + list); } }
  11. reverse()

    • C++std::reverse()
    • JavaCollections.reverse()
       

      javaCopy Code

      import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ReverseExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); Collections.reverse(list); System.out.println(list); // 颠倒列表中的元素 } }
  12. assign()

    • C++std::vector::assign()
    • Java: 通过重建集合或使用 List.clear() 和 List.addAll()
       

      javaCopy Code

      import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class AssignExample { public static void main(String[] args) { List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3)); System.out.println("Before assign: " + list); list.clear(); list.addAll(Arrays.asList(4, 5, 6)); // 替换内容 System.out.println("After assign: " + list); } }

这些 Java 方法和类提供了与 C++ 容器操作相似的功能,尽管语法和具体实现有所不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值