通过数组获取唯一指定几个数据

1、通过数组内容获取想要数组中几个唯一数据

  @Test
    public void t74() {
        String[] arrStr = {"2092314", "2092313", "2078103", "588506", "353867", "337220", "337221", "337233", "337189", "318945"};
        HashSet<String> getrunmber = getrunmber(1, arrStr);
        getrunmber.forEach(m -> Log.info(m));

    }

    /**
     * 根据数组长,返回唯一相应数据
     * @param n
     * @param str
     * @return
     */
    public HashSet<String> getrunmber(int n, String[] str) {
        Random random = new Random();
        HashSet<String> setlist = new HashSet<>();
        if (n <= str.length && n != 0 && str.length != 0 && str != null) {
            while (setlist.size() < n) {
                int c = random.nextInt(str.length);
                setlist.add(str[c]);
            }
        } else {
            Log.info("获取的数据大于String数据的长度");
            return null;
        }
        return setlist;
    }

2通过文件读取获取指定唯一数据


    /**
     * 通过读取文件或指定唯一数据
     * @param n
     * @param str
     * @return
     */
    public HashSet<String> getrunmber(int n, String str) {
        Random random = new Random();
        HashSet<String> setlist = new HashSet<>();
        ArrayList<String> list = fileReaderr(str);
        if (n <= list.size() && n != 0 && list.size() != 0 && str != null) {
            while (setlist.size() < n) {
                int c = random.nextInt(list.size());
                setlist.add(list.get(n));
            }
        } else {
            Log.info("获取的数据大于String数据的长度");
            return null;
        }
        return setlist;
    }

 /**
     * 通过读取文件内容
     * @param file
     * @return list
     */
    public static ArrayList<String> fileReaderr(String file) {
        BufferedReader bufferedReader = null;
        String len = null;
        ArrayList<String> list = new ArrayList<>();
        File numberpath = new File(file);
        if (!numberpath.exists()) {
            Log.info("文件不存在");
            return null;
        }
        try {
            bufferedReader = new BufferedReader(new FileReader(numberpath));
            while ((len = bufferedReader.readLine()) != null) {
                list.add(len);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return list;
    }

原文地址:https://blog.51cto.com/357712148/2403188

时间: 2024-07-31 19:46:03

通过数组获取唯一指定几个数据的相关文章

SQL Server获取指定行的数据

SQL Server获取指定行(如第二行)的数据 --SQL Server获取指定行(如第二行)的数据-- --法一(对象法)-- select * from ( select * , number = row_number() over(order by Grade desc) from Students )  m where number = 2 --法二(排除法)--- select top 1 * from Students where Grade not in ( select top

delphi7 获取dbgrid指定行和列以及取得相应的数据

取得dbgrid选中行的行号 DBGrid2.DataSource.DataSet.RecNo 取得dbgrid选中行指定列的数据 DBGrid2.Fields[0].Value;//第一列 DBGrid2.Fields[1].Value;//第二列 网上有种说法是 假如你用的是 adoquery1那就是adoquery1.fields[0].asstring 如果要取第2列的值,那就是adoquery1.fields[1].asstring 依次类推 如果你用的是 adotable1那就是 a

从指定文件(字节数组)获取内容以及获取长度

package cn.felay.io; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * @author <a mailto:[email protected]>felayman</a> * @t

ES6数组中删除指定元素

知识点: ES6从数组中删除指定元素 findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引.否则返回-1. arr.splice(arr.findIndex(item => item.id === data.id), 1) http://louiszhai.github.io/2017/04/28/array/ 1:js中的splice方法 splice(index,len,[item]) 注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组

取给定正整数的指定bit位开始的指定长度的数据

#include "OJ.h" #include <iostream> #include <vector> using namespace std; /* Description 取给定正整数的指定bit位开始的指定长度的数据.bit位从右向左从0开始计算. Prototype unsigned int GetBitsValue(unsigned int input, unsigned int startbit, unsigned int bitlen) Inp

oracle 与sql serve 获取随机行数的数据

Oracle 随机获取N条数据    当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目的1) select * from (select * from tablename order by sys_guid()) where rownum < N; 2) select * from (select * from tablename order by dbms_random.va

Python获取股票历史数据和收盘数据的代码实现

各种股票软件,例如通达信.同花顺.大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析.关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数据并存储到数据库,然后再通过其他工具,例如SPSS.SAS.EXCEL或者其他高级编程语言连接数据库获取股票数据进行定量分析,这样就能实现更多目的了. 为此,首先需要找到可以获取股票数据的接口,新浪.雅虎.腾讯等都有接口可以实时获取股票数据,历史数据选择了雅虎接口,收盘数据选择了腾讯接口. (1)项

获取唯一的或是删除重复的记录

在某一数据表中,数据有冗余了,我们需要获取唯一的记录. 同这样的问题,使用例子来说时,最简单了.创建一张数据表: CREATE TABLE dbo.Data ( [ID] int IDENTITY(1,1) NOT NULL, [Item] varchar(55) NULL, [Designation] varchar(20) NULL, [Qty] decimal(10, 2) NULL ) GO Source Code 为这张表,添加一些数据,注意一些数据已经重复了: INSERT INTO

PHP中如何在数组中随机抽取n个数据的值 - array_rand()?

PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1.如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组.这样你就可以随机从数组中取出键名和值. 如下例所示: <?php $input = array("Neo", "Morp