A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 浅色寂语66 中级黑马   /  2016-8-8 21:42  /  383 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.javaee;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;

public class Demo02 {
        public static void main(String[] args) throws Exception {
        /*        3.产生10个1-100的随机数,并放到一个数组中
                (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。
                (2)把数组中小于10的数字放到一个map集合中,并打印到控制台。
                (3)把数组中的数字放到当前文件夹的D://number.txt文件中*/
               
                // 需求: 去除数组中重复的数字
                // --->第一:HashSet   问题:数字会无序
        //--> 再搞一个List  1.遍历数组  2.list.contains()  包含不包含这个元素  -->
                                                           //如果包含         不添加
                                                           //如果不包含     添加
               
                int [] arr = new int [10];
                for(int x = 0 ;x < 10; x++){
                        int random = new Random().nextInt(100) + 1;//生成0-99 的数     要求是1-100所以+1
                        arr[x] = random;   //将随机数赋值给数组  
                }
        putValueToList(arr);
        writeArrToFile(arr);
        
        }

        private static void writeArrToFile(int[] arr) throws Exception {
               
                BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\number.txt"));
                for (int temp : arr) {
                        bw.write(temp+"");// 数字+ 字符串 ---> 变成字符串,也能用toString()方法
                }
                bw.close();
        }

        private static void putValueToList(int[] arr) {
                List<Integer> list = new ArrayList<Integer>();
                Map<Integer,Integer> map = new HashMap<Integer,Integer>();
               
                int count = 0;
                for(int temp : arr){
                        if(temp < 10){
                                //遍历出来的数字小于10
                                map.put(++count,temp);
                        }else{
                                //遍历出来的数字大于10
                                list.add(temp);       
                        }
                       
                }
               
        }
}

2 个回复

正序浏览
可以可以,我原先做你这题的时候没理解题的意思,Map里还要顺带记录这个数出现了几次
回复 使用道具 举报
静下心来,我很厉害,哈哈哈
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
public class dianzhaokuozhan {
        /*给定一个list集合:{"张柏芝","刘德华","张亮","张靓颖","杨颖","黄晓明"}
        1.编写一个方法:将list集合中所有姓张的人员写入到D:\\a.txt中
        2.编写一个方法:将D:\\a.txt中所有姓张的人员信息读取出来并打印到控制台上  --->默认不是1问写入的数据
        */
                public static void main(String[] args) throws Exception {
                        ArrayList<String> names=new ArrayList<String>();
                        Writer out = new FileWriter("D:\\a.txt");
                        BufferedWriter fw= new BufferedWriter(out);
                        //向集合中添加元素
                        Collections.addAll(names, "张柏芝","刘德华","张亮","张靓颖","杨颖","黄晓明");
                        //遍历集合,以张开头的写在D:\\a.txt
                             for (String thisname : names) {
                                     if(thisname.startsWith("张")){
                                             fw.write(thisname);
                                        }
                        }
                             fw.close();
                             //读取文件
                             Reader in = new FileReader("D:\\a.txt");
                                     BufferedReader fr= new BufferedReader(in);
                                     String line = null;
                                    while(null!=(line = fr.readLine())) {
                                            String [] arr=line.split("张");
                                            for (int i = 0; i < arr.length; i++) {
                                                    System.out.println("张"+arr[i]);
                                                }
                    
                                           
                                           
                                    }
                                   
                                    fr.close();               
                }

        }

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马