java 随机抽取List数据

前言

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i


提示:以下是本篇文章正文内容,下面案例可供参考

 /**
     * .
     * 根据随机抽取List数据
     *
     * @param subList 待抽取的List
     * @param count   抽取个数
     * @return
     */
    private List<Integer> proportionalExtra(List<Integer> subList, Integer count) {
        List<Integer> resList = new ArrayList<>();
        if (count >= 1) {
            Random random = new Random();
            if (subList.size() == 1 || subList.size() == 0 || subList.size() == count) {
                resList = subList;
            } else {
                for (int i = 0; i < count; i++) {
                    int intRandom = random.nextInt(subList.size() - 1);
                    resList.add(subList.get(intRandom));
                    subList.remove(subList.get(intRandom));
                }
            }
        }
        return resList;
    }

总结

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤实现: 1. 使用Java的FileReader和BufferedReader读取文件内容,存入List<String>中。 2. 使用Java的Random类生成一个随机数,作为从List抽取一行的索引。 3. 从List中根据索引抽取一行内容。 4. 在抽取的行后面添加需要添加的数据。 5. 将修改后的内容写入文件中,可以使用Java的FileWriter和BufferedWriter。 下面是示例代码: ```java import java.io.*; import java.util.*; public class FileRandomLine { public static void main(String[] args) throws IOException { // 读取文件内容,存入ListList<String> lines = new ArrayList<>(); FileReader fileReader = new FileReader("file.txt"); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) { lines.add(line); } bufferedReader.close(); // 生成随机数,抽取一行内容 Random random = new Random(); int index = random.nextInt(lines.size()); String selectedLine = lines.get(index); // 在抽取的行后面添加数据 String newData = "new data"; String modifiedLine = selectedLine + newData; // 写入文件 FileWriter fileWriter = new FileWriter("file.txt"); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); for (String l : lines) { if (l.equals(selectedLine)) { bufferedWriter.write(modifiedLine); } else { bufferedWriter.write(l); } bufferedWriter.newLine(); } bufferedWriter.close(); } } ``` 其中,file.txt是要读取和写入的文件名,new data是要添加的数据。注意,如果要修改的文件比较大,可能需要考虑使用更高效的I/O方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值