• 每日记载内容总结18


    1.java实现两个collection的交集和并集

    交集:

    //求出交集
    strList2.retainAll(strList);
    System.out.println("交集大小:"+ strList2.size());

    并集:

    //求出并集
    strList2.removeAll(strList);
    strList2.addAll(strList);
    System.out.println("并集大小:"+ strList2.size());

    不用retainAll实现两个collection集合的交集

     public static Collection<Account> getMixedCollect(Collection<Account> accountsOne ,Collection<Account> accountsTwo){
            Collection<Account> mixedAccounts =  new ArrayList<Account>();
            if (accountsOne != null && accountsOne.size() > 0 && accountsTwo !=null && accountsTwo.size() > 0) {
                Iterator<Account> iteratorTwo = accountsTwo.iterator();
                for (Iterator<Account> iteratorOne = accountsOne.iterator() ; iteratorOne.hasNext();) {
                    Account accountO = (Account)iteratorOne.next();
                    while(iteratorTwo.hasNext()){
                        Account accountT = (Account)iteratorTwo.next();
                        if (accountO.getId().equals(accountT.getId())) {
                            mixedAccounts.add(accountT);
                        }
                    }
                }
            }
            return mixedAccounts ;
        }
    后来经测试,发现只有iteratorOne的第一个数据与iteratorTwo的所有数据进行了比较,而iteratorOne剩下的数据没有进行比较以及放入mixedAccounts ,原因如下:
    iteratorTwo第一次迭代完之后,迭代器的指向已经指向最后,而不会回到第一个,因此没有进入while方法,

    新代码如下:
    
    
     public static Collection<Account> getMixedCollect(Collection<Account> accountsOne ,Collection<Account> accountsTwo){
            Collection<Account> mixedAccounts =  new ArrayList<Account>();
            if (accountsOne != null && accountsOne.size() > 0 && accountsTwo !=null && accountsTwo.size() > 0) {
                for (Iterator<Account> iteratorOne = accountsOne.iterator() ; iteratorOne.hasNext();) {
                    Account accountO = (Account)iteratorOne.next();
                     Iterator<Account> iteratorTwo = accountsTwo.iterator();
                    while(iteratorTwo.hasNext()){
                        Account accountT = (Account)iteratorTwo.next();
                        if (accountO.getId().equals(accountT.getId())) {
                            mixedAccounts.add(accountT);
                        }
                    }
                }
            }
            return mixedAccounts ;
        }    
    
    

    2.在css选择器中选择checkbox

    input
    {
    background-color:expression((this.type=="checkbox" ? "blue" : ""));
    }
    
    input[type="checkbox"]
    input.checkbox

    checkbox在不同浏览器下的区别:

    IE浏览器下checkbox对width,border,background敏感,而且ie版本在ie10以下
    而对margin:0一点反应也没有;Firefox,chrome等浏览器对border,background一点反应都没有,
    Firefox对width一点反应也没有,但是Firefox等对margin反应强烈,margin:0;会使复选框后面的文字紧贴这复选框。

    所以为了实现漂亮的checkbox,且兼容各种类型的浏览器,一般采用图片模拟checkbox,点击切换图片来实现功能。

    jquery获取checkbox的值以及checkbox是否选中

    <input type="checkbox" value="501" >
    获取值:$("input[type='checkbox']").attr('value')返回 501
    判断是否选中:$("input[type='checkbox']").is(':checked') 选中则返回true,不选中则返回false

    3.html知识:

    margin:0 auto;的意思  就是 上下距离是0   左右距离自动   也就是说  是居中的意思!
    5秒后显示内容
    <
    html> <head> <style> #div1{height:100px;width:100px;background-color:yellow;display:none} </style> <script type="text/javascript"> // window.onload=function(){ // var i=0; // setInterval(function(){ // i++; // document.getElementById("div2").innerHTML="计时:"+ i ; // if(i==5){ // document.getElementById("div1").style.display="block"; // document.getElementById("div2").style.display="none"; // } // },1000); // } function runfun(){ var i=0; var stoptime = document.getElementById("stopTime").value; document.getElementById("div1").style.display="none"; document.getElementById("div2").style.display="block"; setInterval(function(){ i++; document.getElementById("div2").innerHTML="计时:"+ i ; if(i==stoptime){ document.getElementById("div1").style.display="block"; document.getElementById("div2").style.display="none"; i = 0 ; } },1000); }
    //清除interval window.clearInterval(id);
    </script> </head> <body> <div id ="div0"> 设置经过 <input type="text" id="stopTime" /> 显示 <input type="button" id="runfun" value="开始" onclick = "runfun()"/> </div> <div id="div1"> 2货,还真等啊 </div> <div id="div2"> 计时开始: </div> </body> </html>
    测试toggle以及oneclick等知识:
    <html>
     <head>
     <style type="text/css" >
        .dd{
        text-align : center;
        }
     </style>
     <script type="text/javascript" src="jquery.min.js"></script>
     <script type="text/javascript">
     $(function(){
    //测试是否含有名字为dd的class alert($(
    "#f").hasClass("dd")); //通过点击按钮实现切换body的背景
    $(
    "button").toggle(function(){ $("body").css("background-color","green");}, function( ){ $(this).stop( );}, function(){ $("body").css("background-color","red");}, function(){ $("body").css("background-color","yellow");} );
    //用toggle给text添加动画效果 $(
    "#eee").toggle(function(){ $("#eee").animate({"left":"500px","opacity":0.5},3000);},//顺便改改透明度 function(){ $(this).stop( ); }, function(){ $("#eee").animate({"left":"0px","opacity":1},3000 );} );
    //动态实现下一个控件的显示与隐藏 $(
    "#fff").click( function(){ $(this).next().slideToggle( ); // 注意不能在自己身上写这个表达式,因为收起后,没法展开,收起后就没法点击啦。。一般都是写给next( )。 $(this).toggleClass("vvvvvvv"); } ) $("#f").toggle( function(){ // toggle通过鼠标点击触发的 $(this).css("color","red"); }, function() { $(this).css("color","blue"); } ); $("#fff").one("click",function(){//执行一次就失效 alert($(this).val()); }); }); </script> </head> <body> <button>请点击这里,来切换不同的背景颜色</button> <input type="text" value="test" id="f" style="text-valign:center" class="dd"> <input type="text" value="one time" id="fff" class=""> <input type="text" value="one wwwww" id="eee" style="position:relative"> </body> </html>
    用bind绑定多个事件
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <script type="text/javascript" src="jquery.min.js"></script>
      <script type="text/javascript">
      $(function(){
         $("#eee").bind({click:function(){
       alert(1);
           },
       mouseover:function(  ){
           alert(2); }
       });
      });
      </script>
      <style type="text/css">
      </style>
     </head>
    
     <body>
      <input type="text" value="one wwwww" id="eee" style="position:relative">
     </body>
    </html>
    用js获取元素坐标
    <html>
        <head>
            <script type="text/javascript">
                //获取元素的纵坐标
    function getTop(e){
    var offset=e.offsetTop;
    if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
    return offset;
    }
    //获取元素的横坐标
    function getLeft(e){
    var offset=e.offsetLeft;
    if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
    return offset;
    }
    
    function locatio(obj){
        alert(obj.offsetParent);
        alert("y:"+getTop(obj)+"--x:"+getLeft(obj));
    }
            </script>
        </head>
        <body>
            <div>
            <table>
            <tr><td><input type="text" value="hello" onclick="locatio(this)"/></td><td><input type="text" value="world" onclick="locatio(this)"/></td></tr>
            <tr><td><input type="text" value="fuck" onclick="locatio(this)"/></td><td><input type="text" value="you" onclick="locatio(this)"/></td></tr>
            <tr><td><input type="button" value="hello" onclick="locatio(this)"/></td><td><input type="button" value="hello" onclick="locatio(this)"/></td></tr>
            <tr><td><input type="button" value="fuck" onclick="locatio(this)"/></td><td><input type="button" value="you" onclick="locatio(this)"/></td></tr>
            
            </table>
            </div>
        </body>
    </html
    制作多样表格
    <!
    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <style> table{border-collapse:collapse;border-top:3px solid #000;border-bottom:3px solid #000;} .notVert{border:none; } td,th{ width:60px; border-right:1px solid #aaa; border-bottom:1px solid #aaa; text-align:center; font-size:16px; }; th{font-size:16px;font-weight:normal} .last{border-right:none; } .lastTr td{border-bottom:none; } strong{color:red; } </style> </head> <body> <p> <strong>四周(上下左右都不封闭)</strong> </p> <table cellspacing="0" cellpadding="2" class="notVert"> <tr> <th>一月</th> <th>二月</th> <th>三月</th> <th class="last">总计</th> </tr> <tr> <td>29</td> <td>38</td> <td>65</td> <td class="last">24</td> </tr> <tr> <td>26</td> <td>47</td> <td>58</td> <td class="last">4</td> </tr> <tr class="lastTr"> <td>56.45</td> <td>665</td> <td>76</td> <td class="last">8</td> </tr> </table> <p> <strong>常用型,左右不封闭</strong> </p> <table cellspacing="0" cellpadding="2"> <tr> <th>一月</th> <th>二月</th> <th>三月</th> <th class="last">总计</th> </tr> <tr> <td>22</td> <td>112</td> <td>52</td> <td class="last">4</td> </tr> <tr> <td>15</td> <td>265</td> <td>39</td> <td class="last">4</td> </tr> <tr class="lastTr"> <td>72</td> <td>43</td> <td>521</td> <td class="last">8</td> </tr> </table> </body> </html>

    4.div边框重叠解决办法:

    设置重叠部分边框所在div的margin为边框宽度的相反数就可以

    以下为测试代码:

    .div {width:100px; height:103px; border:1px solid #333; margin-right:-1px; margin-bottom:-1px;}
    .float-left{float:left;}
    .clear-both{clear:both;}
    <div class="div"></div>
    <div class="div"></div>
    <div class="div float-left"></div>
    <div class="div float-left"></div>
    <div class="div float-left"></div>
    <div class="clear-both"></div>
  • 相关阅读:
    [Luogu1993] 小K的农场
    [Noip2013] 车站分级
    [Noip2003]加分二叉树
    [Luogu3797] 妖梦斩木棒
    UPC 6616 Small Mulitple
    STL容器之优先队列
    Dijkstra和Floyd算法
    最短路径问题---Dijkstra算法详解
    并查集
    洛谷 P1217
  • 原文地址:https://www.cnblogs.com/cuiyf/p/3251707.html
Copyright © 2020-2023  润新知