• Java基础整理


    一、Java中的遍历    

    1、在java开发中会碰到遍历List删除其中多个元素的情况,如果使用一般的for循环以及增强的for循环,代码会抛出异常ConcurrentModificationException。

    (1)一般的for循环

       for(int i=0;i<list.size();i++){

          if(list.get(i).equals("example")){

             list.remove(i);

          }

       }

    (2)增强for循环

       for(String str:list){

          if(str.equals("example")){

             list.remove(str);

          }

       }

    (3)iterator遍历【只有这种情况可以在遍历的同时删除,注意在循环内部iterator.next()不要重复调用否则会报错】

       Iterator<String> iterator = list.iterator();

       while(iterator.hasNext()){

          String x = iterator.next();

          if(x.equals("example")){

              iterator.remove();

          }

       }

    二、HashMap的顺序问题

        HashMap本身是无序状态,所以使用Iterator读取到的顺序不一定是写入的顺序,如果要保证顺序,需要使用LinkedHashMap

    三、使用String.split("正则表达式")

        如果直接使用“|”来进行分割字符串,会导致字符串按照正则表达式来切割,导致字符串被分隔为一个个的字符。这时需要使用“\|”来实现愿意。

    四、Java中java.util.Date相关知识整理

    1、java.util.Date的after和before、equal

        public boolean after(Date when):当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否则返回 false。

        public boolean before(Date when):当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间早,才返回 true;否则返回 false。

        public boolean equals(Object obj):比较两个日期的相等性。当且仅当参数不为 null,并且是一个表示与此对象相同的时间点(到毫秒)的 Date 对象时,结果才为 true。因此,当且仅当 getTime 方法对于两个 Date 对象返回相同的 long 值时,这两个对象才是相等的。

     五、java中replace和replaceAll的区别

    1、replace的参数是char和CharSequence,既可以支持字符替换,也可以支持字符串替换。
    2、replaceall参数是regex, replacement,regex表示是正则表达式。
     
    六、java.io中File类的list()和listFiles()方法
    1、File类的list()方法返回的是一个String[],其中包括所有文件的名字。
    2、而listFiles()方法返回一个File[],其中包含整个文件夹下的File对象。
    3、用户可以实现FilenameFilter接口来实现对文件列表的过滤:
    class HtmlFileFilter implements FilenameFilter {
            @Override
            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                if (name.endsWith(".html"))
                    return true;
                return false;
            }
        }
    public void test() {
            File file = new File("E:/files");
            String[] list = file.list(new HtmlFileFilter());
            System.out.println("HTML类型的文件有:");
            for (String f : list) {
                System.out.println(f);
            }
        }

     同时你也可以使用匿名的内部类来实现文件过滤的功能,简化代码:

    import java.io.File;
    import java.io.FilenameFilter;
    
    public class TestFile {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            File file = new File("E:/files");
            String[] list = file.list(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    // TODO Auto-generated method stub
                    if (name.endsWith(".html"))
                        return true;
                    return false;
                }
            });
            System.out.println("HTML类型的文件有:");
            for (String f : list) {
                System.out.println(f);
            }
        }
    
    }
  • 相关阅读:
    Oracle在linux下的开机自启动(详细)转
    Xlib: connection to ":0.0" refused by server Xlib: No protocol specified解决方案
    java Comparable和Comaprator的对比
    java异常——RuntimeException和User Define Exception
    堆排序
    Java实现 蓝桥杯 算法提高 复数四则运算
    Java实现 蓝桥杯 算法训练 约数个数
    Java实现 蓝桥杯 算法训练 约数个数
    Java实现 蓝桥杯 算法提高 01背包
    Java实现 蓝桥杯 算法提高 判断名次
  • 原文地址:https://www.cnblogs.com/mrnx2004/p/9799330.html
Copyright © 2020-2023  润新知