javaSE 基础归纳

来源:互联网 发布:知其雄而守其雌的意思 编辑:程序博客网 时间:2024/05/16 11:30

此博内容全是自己的笔记,各位看官就别在这浪费时间啦!!–

ArrayList遍历输出

public static void main(String[] args) {        List<String> mList = new ArrayList<String>();        mList.add("hello");        mList.add("张三");        mList.add("李四");        mList.add("王五");        // 方法一        for (int i = 0; i < mList.size(); i++) {            System.out.println(mList.get(i));        }        // 方法二        for (String string : mList) {            System.out.println(string);        }        // 方法三        Iterator<String> it = mList.iterator();        while (it.hasNext()) {            System.out.println(it.next());        }        // 把字符串内容挨个输出        String str = "ABCDEFG";        for (int i = 0; i < str.length(); i++) {            System.out.println(str.charAt(i));        }    }

HashMap的遍历输出

public static void main(String[] args) {    Map<Integer, Student> hm = new HashMap<Integer, Student>();    hm.put(1001, new Student("张三"));    hm.put(1002, new Student("熊无"));    hm.put(1003, new Student("林之海"));    //方法一    Iterator<Integer> it = hm.keySet().iterator();    while (it.hasNext()) {        int key = it.next();        Student values = hm.get(key);        System.out.println("key-->"+key+"\tvalues-->"+values);    }    ////方法二(推荐)    Iterator<Entry<Integer, Student>> it = hm.entrySet().iterator();    while (it.hasNext()) {        Entry<Integer, Student> entry = it.next();        int key = entry.getKey();        Student s = entry.getValue();        System.out.println("key-->"+key+"\tvalues-->"+s);    }}

接收从键盘输入的字符,并以大写输出,遇到exit结束

public static void main(String[] args){    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));    String s = null;    try {        while((s=br.readLine())!=null){            if (s.equalsIgnoreCase("exit")) {                break ;            }            System.out.println(s.toUpperCase());                    }        br.close();    } catch (IOException e) {        e.printStackTrace();    }}

判断一个字符串中相同的字符有多少个(用HashMap)

public static Map<Character, Integer> CountsCharacter(String str) {//str:要判断的字符串        Map<Character, Integer> hm = new HashMap<Character, Integer>();        char[] ch = str.toCharArray();        for (Character c : ch) {            if (hm.containsKey(c)) {                int values = hm.get(c);                System.out.println(values);                hm.put(c, values + 1);            } else {                hm.put(c, 1);            }        }        return hm;    }

ArrayList、HashSet、HashMap 都是线程不安全,如果想要线程安全,Collections 工具类提供了相关的 API,可以让上面那 3 个不安全的集合变为安全的

Collections.synchronizedCollection(c)Collections.synchronizedList(list)Collections.synchronizedMap(m)Collections.synchronizedSet(s)

上面几个函数都有对应的返回值类型,传入什么类型返回什么类型。打开源码其实实现原理非常简单,就是将集合的核心方法添加上了 synchronized 关键字

BufferedWriter和BufferedReader

public static void main(String[] args) throws Exception {        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\Student.java")));        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("e:\\a.txt")));        String str = "";        while ((str = br.readLine()) != null) {            bw.write(str);            bw.newLine();// 写入一个行分隔符。        }        bw.flush();        IOUtils.closeReader(br);        IOUtils.closeWriter(bw);        System.out.println("文件复制成功!");    }

开启一个线程

new Thread(){        public void run(){            //do something        }    }.start();    new Thread(new Runnable(){        @Override        public void run(){        }    }).start();    Thread t = new Thread(){        @Override        public  void run(){        }    };    t.start();

重写equals方法和hashCode方法

public boolean equals(Object object) {        if (object == null) {            return false;        }else {            if (object instanceof Student) {                Student student = (Student) object;                if(this.name==student.name&&this.num==student.num){                    return true;                }            }        }        return false;    }    public int hashCode() {        // return new Integer(id).hashCode(); //如果你设定的学生信息中学号是唯一的,则可以直接用num来作为哈希码        return num * this.name.hashCode();    }

生成一个四位的随机数

private static String randomText()      {          Random random = new Random();          Set<Integer> set = new HashSet<Integer>();  //Set中不允许有重复元素        while (set.size() < 4)          {              int randomInt = random.nextInt(10);  //返回一个10以内的随机数            set.add(randomInt);  //添加到set集合中去        }          //此时set中的数据是[值1,值2,值3, 值4],接下来把它们存入字符串中        StringBuffer sb = new StringBuffer();          Iterator<Integer> iterator = set.iterator();        while(iterator.hasNext()){            int next = iterator.next();            sb.append(""+next);        }        return sb.toString();      }  
0 0