泛型算法

前言

  Java也提供了一些封装好了的算法,能对集合数据做处理。

说明

  Java中的泛型算法不是很多,不如S++中的STL那么多。

  主要也就是排序,查找,以及其他一些很简单的操作。

  本文以排序为例,说明Java中算法的基本使用方法。

代码示例

 1 package test;
 2
 3 import java.util.Collections;
 4 import java.util.Iterator;
 5 import java.util.LinkedList;
 6
 7 /**
 8  * @author   FangMeng
 9  * @version  1.0.0
10  * @2014-12-09
11  */
12 public class Java7Learn {
13
14     public static void main(String[] args) {
15
16         // 构造一个测试的LinkedList集合
17         LinkedList<String> l = new LinkedList<>();
18         l.add(new String("1"));
19         l.add(new String("3"));
20         l.add(new String("5"));
21         l.add(new String("2"));
22         l.add(new String("4"));
23         l.add(new String("6"));
24
25         Collections.sort(l);
26
27         /*
28          * 遍历输出结果
29          */
30         Iterator<String> i = l.iterator();
31         while(i.hasNext()){
32             System.out.println(i.next());
33         }
34     }
35 }

小结

  1. Java中的算法都比较精巧,实现的是一些很简单的功能。

  2. 当觉得要写一些很“繁琐”但通用的代码的时候,可以查查Java算法手册。

  3. 有部分算法支持"函数对象“参数(不确定Java是不是这么称呼,反正传递进去的一般是一个接口匿名类对象)

时间: 2024-07-29 17:06:00

泛型算法的相关文章

第十六篇:泛型算法结构

前言 C++提供了很多算法(超过一百个),要想掌握这些算法的使用需要将它们都死记下来吗?当然不用了,本文将为你剖析泛型算法的基本结构,让你以后对这些算法做到“ 望名生义 ”. 算法的形参结构 绝大多数算法的形参采用以下四种形式之一: 1. 算法名 ( 起始迭代器, 末端迭代器, 其他参数 ) 说明:起始迭代器和末端迭代器标识了算法的输入范围,其他参数与算法特性有关. 2. 算法名 ( 起始迭代器, 末端迭代器, 插入迭代器/流迭代器, 其他参数 ) 说明:起始迭代器和末端迭代器标识了算法的输入范

C++ Primer 读书笔记:第11章 泛型算法

第11章 泛型算法 1.概述 泛型算法依赖于迭代器,而不是依赖容器,需要指定作用的区间,即[开始,结束),表示的区间,如上所示 此外还需要元素是可比的,如果元素本身是不可比的,那么可以自己定义比较函数. 2.常用的泛型算法函数: fill,fill_n, copy, replace, sort, unique, count_if, stable_sort 此外在有一个谓词函数会结合以上的函数使用,像sort, count_if等 3.再谈迭代器 (1)插入迭代器 back_inserter, f

泛型算法概述

顺序容器只定义了很少的操作:在多数情况下,我们可以添加和删除元素.访问首尾元素.确定容器是否为空以及获得指向首元素或尾元素之后位置的迭代器. 如果我们想要做:查找特定元素.替换或删除一个特定值.重排元素顺序等.标准库并未给每个容器都定义成员函数来实现这些操作,而是定义了一组泛型算法:称它们为“算法”,是因为它们实现了一些经典算法的公共接口,如排序和搜索:称它们是“泛型的”,是因为它们可用于不同类型的元素和多种容器类型(不仅包括标准库类型,如vector或list,还包括内置的数组类型). 概述

CH10 泛型算法

概述 大多数算法都定义在algorithm头文件中. Note:算法永远不会执行容器操作 泛型算法本身不会执行容器的操作,而是通过迭代器来访问.修改等操作 10.1 题目要求读取数据存入vector,并实现用户可以查找的值出现在vector中的次数,所以可以考虑用户查找文件中某个数出现的次数,所以可以考虑文件操作 1 int main(int argc, char* argv[]) 2 { 3 ifstream infile(argv[1]); 4 if (!infile) 5 cerr <<

c++泛型算法(1)

顺序容器只定义了很少的操作,为了能做其他更多有用的操作:查找特定元素,替换或删除某一特定值,重排元素顺序等.泛型算法是一些经典算法的公共接口 1.概述 大多数算法都定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法. 泛型算法不会执行容器的操作,只会运行于迭代器之上,执行迭代器的操作 .这样就导致算法不能改变容器的大小,也就不能直接添加或删除元素了.因此标准库定义了一种叫插入器的特殊迭代器来完成向容器添加元素的效果. 2.初识泛型算法 标准库提供了超过100

C++ 泛型算法

<C++ Primer 4th>读书笔记 标准容器(the standard container)定义了很少的操作.标准库并没有为每种容器类型都定义实现这些操作的成员函数,而是定义了一组泛型算法:因为它们实现共同的操作,所以称之为“算法”:而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于 vector 或 list 这些标准库类型,还可用在内置数组类型.甚至其他类型的序列上. 标准算法固有地独立于类型,与容器的类型无关:在前面的描述中,没有任何内容依赖于容器类型.这种算法只在一点上

C++primer第十一章 泛型算法

标准库容器定义的操作非常少.标准库没有给容器添加大量的功能函数,而是选择提供一组算法,这些算法大都不依赖特定的容器类型,是“泛型”的,可作用在不同类型的容器和不同类型的元素上. 因为它们实现共同的操作,所以称之为“算法”:而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于 vector 或 list 这些标准库类型,还可用在内置数组类型.甚至其他类型的序列上. 11.1. 概述 假设有一个 int 的 vector 对象,名为 vec,我们想知道其中包含某个特定值.解决这个问题最简单的

C++ Primer笔记6_STL之泛型算法

1.泛型算法: 大多数算法定义在头文件algorithm中,标准库还在头文件numeric中定义了一组数值泛型算法 只读算法: 举例: find函数用于找出容器中一个特定的值,有三个参数 int val = 10;//val为我们需要查找的值 auto result = find(vec.begin(), vec.end(), val): cout << "The value "<< val << (result == vec.end() ? &qu

【足迹C++primer】30、概要(泛型算法)

概要(泛型算法) 大多数算法的头文件中定义algorithm在. 标准库也是第一个文件numeric它定义了一套通用算法. #include<iostream> #include<numeric> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> vec; for(size_t t=0 ; t != 44 ; ++t) { vec.

【STL】帮你复习STL泛型算法 一

STL泛型算法 #include <iostream> #include <vector> #include <algorithm> #include <iterator> #include <numeric> #include <list> using std::cout; using std::endl; using std::vector; using std::list; bool IsOushu(const int&