java list集合属性值比较

比较两个list,如何找出相同属性id,其他属性,如name值不相同的数据?需要怎样重写equals吗?我用两次for循环,效率太低了!
public static List needupdatetdxxlist() {
List getoratdxxlist=getoratdxx();
List getresttdxxlist = getrestgctdxx();
List needupdatetdxx = new ArrayList();

            try {           

                for (int i = 0; i < getresttdxxlist.size(); i++) {
                    gctd gctd =new gctd();

                    for (int j = 0; j < getoratdxxlist.size(); j++) {



                        String DevChnId = getresttdxxlist.get(i).getDevChnId();
                        String DevChnName = getresttdxxlist.get(i).getDevChnName(); 
                        String Manufacturer = getresttdxxlist.get(i).getManufacturer();
                        double GpsX=getresttdxxlist.get(i).getGpsX();
                        double GpsY=getresttdxxlist.get(i).getGpsY();
                        int DevChnType=getresttdxxlist.get(i).getDevChnType();
                        int CameraType=getresttdxxlist.get(i).getCameraType();
                        String DevChnSn =getresttdxxlist.get(i).getDevChnSn();
                        int Direct=getresttdxxlist.get(i).getDirect();
                        int LaneNo=getresttdxxlist.get(i).getLaneNo();
                        String OrgName = getresttdxxlist.get(i).getOrgName();
                        String OrgCode =getresttdxxlist.get(i).getOrgCode();
                    if (DevChnId.equals(getoratdxxlist.get(j).getDevChnId()) && !DevChnName.equals(getoratdxxlist.get(j).getDevChnName()))
                    {
                        gctd.setDevChnId(DevChnId);
                        gctd.setDevChnName(DevChnName);
                        gctd.setManufacturer(Manufacturer);
                        gctd.setGpsX(GpsX);
                        gctd.setGpsY(GpsY);
                        gctd.setDevChnType(DevChnType);
                        gctd.setCameraType(CameraType);
                        gctd.setDevChnSn(DevChnSn);
                        gctd.setDirect(Direct);
                        gctd.setLaneNo(LaneNo);
                        gctd.setOrgName(OrgName);
                        gctd.setOrgCode(OrgCode);                           
                        needupdatetdxx.add(gctd);
                        LOGGER.debug("需要更新的设备通道:"+DevChnId+"  "+DevChnName);  
                        break;
                    }               
                  }


                }

                        } catch (Exception e) {

                               e.printStackTrace();
                        } 
            return needupdatetdxx;
        }

4个回答

 效率比较高的方式是使用HashMap<int, Pair>
其中
class Pair
{
public 第一个List类型 Item1;
public 第二个List类型 Item2;
}

首先,遍历第一个list,将所有条目添加到以id为key,Pair为值的HashMap里面,作为Item1
然后遍历第二个List,判断是否在Hashmap里有对应的id,如果有,把自身添加到对应的Pair对象,作为Item2
最后遍历一下HashMap,将结果取出来就是你要的。

 import java.util.*;

class Untitled {
    public static void main(String[] args) {
        ArrayList<A> list1 = new ArrayList<A>();
        list1.add(new A(1, "北京"));
        list1.add(new A(2, "上海"));
        list1.add(new A(3, "武汉"));
        list1.add(new A(4, "长沙"));
        list1.add(new A(6, "广州"));
        ArrayList<B> list2 = new ArrayList<B>();
        list2.add(new B(1, "Beijing"));
        list2.add(new B(2, "Shanghai"));
        list2.add(new B(5, "Changchun"));
        list2.add(new B(6, "Guangzhou"));
        list2.add(new B(7, "Hangzhou"));

        //方法1,两个循环
        System.out.println("method 1:");
        for (A a : list1)
        {
            for (B b: list2)
            {
                if (a.id == b.id) System.out.println(a.chn + "=" + b.eng);
            }
        }

        //方法2,用hashmap
        System.out.println("method 2:");
        HashMap<Integer, Pair> map = new HashMap<Integer, Pair>();
        for (A a : list1)
        {
            map.put(new Integer(a.id), new Pair(a.chn, null));
        }
        for (B b : list2)
        {
            if (map.containsKey(new Integer(b.id)))
            {
                Pair p = map.get(new Integer(b.id));
                p.eng = b.eng;
                System.out.println(p.chn + "=" + p.eng);
            }
        }

    }
}

class A
{
    public int id;
    public String chn;
    public A(int id, String name) { this.id = id; this.chn = name; }
}
class B
{
    public int id;
    public String eng;
    public B(int id, String name) { this.id = id; this.eng = name; }
}
class Pair
{
    public String chn;
    public String eng;
    public Pair(String a, String b) { chn = a; eng = b; }
}

对于list,你只能两次for循环。

这样算法效率是O(n)

你那个效率是O(n^2)

baidu_39234208
baidu_39234208 好的,我用你提供的方法试试!
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 现在的效率是O(NlogN),不是O(N),之前写错了。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
struts2 select标签获取action的集合属性值 动态生成下拉菜单 报错
<pre name="code" class="java">   1.要获取集合list的Action类</pre> <pre name="code" class="java">public class RoleAction extends ActionSupport { private Role role; public RoleService roleService; public String message; public List list; public static ActionContext ac = null; public String getMessage() { return message; } @Resource(name = "roleService") public void setRoleService(RoleService roleService) { this.roleService = roleService; } public List getList() { return list; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } public String List() throws Exception { /* * 浏览权限 */ if (this.isRole()) { this.list = this.roleService.get(); System.out.println(this.getList()); return "list"; } else return ERROR; } }</pre> <pre name="code" class="java">2.struts.xml配置action</pre> <pre name="code" class="java"><pre name="code" class="java"> &lt;action name="nuserAction_*" class="nuserAction" method="{1}"&gt; &lt;interceptor-ref name="nuserInterceptorStack"&gt;&lt;/interceptor-ref&gt; &lt;result name="list"&gt;/user/ListUser.jsp&lt;/result&gt; &lt;result name="loginSuccess"&gt;main.jsp&lt;/result&gt; &lt;/action&gt; &lt;action name="roleAction_*" class="roleAction" method="{1}"&gt; &lt;result name="list"&gt;/role/ListRole.jsp&lt;/result&gt; &lt;/action&gt;</pre> </pre> <pre name="code" class="java">3.adduser.jsp中代码如下:</pre> <pre name="code" class="java"><pre name="code" class="java">&lt;s:form action="nuserAction_Add" method="post"&gt; &lt;s:action name="roleAction_List" id="role"&gt;&lt;/s:action&gt; &lt;s:select list="#role.list" label="权限" name="nuser.role.id" headerKey="-1" headerValue="--请选择--" listKey="id" listValue="position"&gt;&lt;/s:select&gt; &lt;s:textfield name="nuser.name" label="用户名" value=""&gt;&lt;/s:textfield&gt; &lt;s:password name="nuser.password" label="密码" value=""&gt;&lt;/s:password&gt; &lt;s:submit value="提交"&gt;&lt;/s:submit&gt; &lt;s:reset value="重置"&gt;&lt;/s:reset&gt; &lt;/s:form&gt;</pre> 此处通过action标签 先执行roleAction_List 来获取 属性list值 然后赋给select标签的list属性 来生成下拉菜单。</pre> <pre name="code" class="java">有时候能够正常显示 但是有时又会报错 异常如下:</pre> <pre name="code" class="java"><pre name="code" class="java">严重: Servlet.service() for servlet jsp threw exception tag 'select', field 'list', name 'nuser.role.id': The requested list key '#role.list' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] at org.apache.struts2.components.Component.fieldError(Component.java:237)</pre> </pre> <pre name="code" class="java">不知道什么情况 请各位帮忙看看!</pre>
java中如何用<c:foreach>迭代出list集合中的map集合中的value值
action中的代码片段: int i = 0; Map map = new HashMap(); List list = new ArrayList(); map.put(i,ci); //ci是个Book对象 i++; list.add(map); session.put("list",list); //实现了SessionAware接口 那么我在JSP页面中要如何迭代出ci中的各个属性啊?或者我action哪里写错了? <c:forEach items="${list}" var="map" varStatus="status"> ${map.value.bname} </c:foreach> 现在迭代出来的是空
Java中关于List集合输出问题?
我一个List<Student>类型的集合中有以下数据: Student类中的属性有: Company ,No1,NO2,NO3,NO4; 省略getter。setter. 输出的结果是: Company No1 No2 No3 No4 WTCCNDEPT1 0 0 2 1 WTCCNDEPT1 0 0 3 1 WTCCNDEPT1 0 0 2 1 WTCCNDEPT2 0 0 3 2 WTCCNDEPT2 0 0 3 2 这种输出来.有重复的数据..我想要的结果是: //如果重复;则把重复的行变成一行;然后把NO1, NO2,NO3,NO4 的列的值累加. 还有一种情况就是;两行的值,完全相通,则移除一行.; Company No1 No2 No3 No4 WTCCNDEPT1 0 0 7 3 WTCCNDEPT2 0 0 3 2 我自己没有做出来.. 求大家帮下忙..能不能帮我想想办法.. 解决这个问题..谢谢你们拉..
struts2 我在jsp页面中获取到了list集合中的对象但是就是不显示值
我用struts2在jsp中遍历了一个集合,集合中也有数据就是没法显示,如果用el表达式取对象 可以打印出来,但是取对象的属性就报错 先上代码 // action层 @Controller public class NreportAction extends BaseAction { /** * 内部审计S相关的封装 */ @Resource private NreportService nreportService; // 内审service private List<Nreport> nreportList; private Nreport nreport; public NreportAction(){ System.out.println("进来了"); } // 内审填报页面 public String addUI(){ System.out.println("时空裂缝"); try { // System.out.println("1.先查出上一年没有完成的任务"); // System.out.println("2.查询出纪检监察室下发状态 , 如果下发了,就显示一条记录,让下级部门填写"); nreportList = nreportService.findNotDoPro(); if(nreportList!=null && nreportList.size()>0){ System.out.println("上一年未完成的项目有"+nreportList.size()+"个"); } } catch (Exception e) { System.out.println(e.getMessage()); } return "reportUI"; } DAO层 public class NreportDaoImpl extends BaseDaoImpl<Nreport> implements NreportDao { @Override public List<Nreport> findNotDoPro() { Calendar c=new GregorianCalendar();//新建日期对象 int year=c.get(Calendar.YEAR);//获取年份 int month=c.get(Calendar.MONTH);/ // 获取当前年份 int year=c.get(Calendar.YEAR); // sql语句 select proid from record where state=1 and (year like '%2015%') // 从【记录表】查询 出上一年没有完成的记录,然后根据记录从【内部表】查出项目的List List list = getSession().createSQLQuery( "select proid from record where state=0 and deptType = '内部审计' and (year like \'%" + String.valueOf(year-1) + "%\')").list(); // 遍历List然后根据这个id来去查找林外一张表 String sql = "select * from nreport where nid in("; for(int i=0;i<list.size();i++){ // sql = "where id in(1,2,3)"; // 如果当前获取的这个id不是最后一个id,那么加上‘,’ if(list.get(i)!= list.get(list.size()-1)){ sql+=list.get(i)+","; }else{ sql+=list.get(i)+")"; } } System.out.println(sql+"看看sql长啥样"); // 从【内部表】查出未完成项目的List List<Nreport> list2= getSession().createSQLQuery(sql).list(); return list2; } } jsp <form action="" method="post" enctype="multipart/form-data"> <table width="100%" border="0"> <tr class="t_tit"> <td width="40" align="center">序号</td> <td width="80" align="center">项目名称</td> <td width="80" align="center">审计类型</td> <td width="40" align="center">送审金额</td> <td width="40" align="center">预计审计费</td> <td width="160" align="center">预计审计时间</td> <td width="140" align="center">经费来源</td> <td width="100" align="center">资金性质</td> <td width="60" align="center">状态</td> <td width="60" align="center">备注</td> <td width="60" align="center">删除</td> </tr> <!-- 如果有上一年的已经启动但是没有完成的计划也显示在这里 --> <s:iterator value="nreportList" status="st"> ${nreportList[0] } <s:if test="nreportList!=null"> <tr <s:if test="#st.odd">bgcolor="f8f8f8"</s:if> > <td align="center"><s:property value="nid"/></td> <td align="center"><s:property value="proname"/></td> <td align="center"><s:property value="audittype"/></td> <td align="center"><s:property value="ssmoney"/></td> <td align="center"><s:property value="expeauditmoney"/></td> <td align="center"><s:property value="expeaudittime"/></td> <td align="center"><s:property value="moneyfrom"/></td> <td align="center"><s:property value="moneyfunds"/></td> <td align="center"><s:property value="state"/></td> <td align="center"><s:property value="memo"/></td> </tr></s:if> <s:else>没数据?</s:else> </s:iterator> 如果我 我jsp中写成上面这样 ${nreportList[0] } 就会输出toString格式的对象 [Ljava.lang.Object;@20d77d7d 如果写成 ${nreportList[0].getNid }就报错 错误信息: 十一月 17, 2016 5:09:16 下午 org.apache.catalina.core.ApplicationDispatcher invoke 严重: Servlet.service() for servlet jsp threw exception java.lang.NumberFormatException: For input string: "getNid" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at javax.el.ArrayELResolver.coerce(ArrayELResolver.java:161) at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:45) ... ... 页面显示出来表格了,是迭代出来的就是没有数据,都是空的格子 ![图片说明](https://img-ask.csdn.net/upload/201611/17/1479374227_31350.jpg) 求大神指导怎么才能迭代出来数据??? 没有C币 , 下次有了一定加倍赏。。。
LIST循环的下拉框,有多个字段的属性,选其中一个字段的属性。
如果有个下拉框,里面有name和ID 2个字段的属性。当我选取的时候只要他的ID。该如果选取?比如<select><option>张三/22</option></select>,我只要里面的22这个值,该如何选取?下拉框的值是后台传来的一个list集合循环出来的。
泛型集合的遍历,返回什么类型
import java.lang.reflect.Field; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.sun.org.apache.commons.beanutils.BeanUtils; public class DBOperateTUtilts { 方法1 public static <E> List<E> query(String sql, Class<E> clazz) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; Object tempStr = null; List<T> list = new ArrayList<T>(); try { conn = DBConnectUtils.getConnection(); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { // newInstance实际上是把new这个方式分解为两步,即,首先调用class的加载方法加载某个类,然后实例化。 // 我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了我们降耦的手段。 // newInstance: 弱类型。低效率。只能调用无参构造。 // new: 强类型。相对高效。能调用任何public构造。 E obj = clazz.newInstance(); if (obj instanceof String) { // ResultSet的下标从1开始 obj = (E) rs.getString(1); } else { // Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限 // getDeclaredFields()返回Class中所有的字段,包括私有字段 // getFields 只返回公共字段,即有public修饰的字段 // field,域是一种属性,可以是一个类变量,一个对象变量,一个对象方法变量或者是一个函数的参数。 Field[] fields = obj.getClass().getDeclaredFields(); // 遍历域 for (Field field : fields) { try { // 反射获取对象成员的字段值 tempStr = rs.getObject(field.getName()); } catch (SQLException e) { tempStr = ""; } // 置是否允许访问,而不是修改原来的访问权限修饰词 field.setAccessible(true); // 把对象的属性数据封装到对象中 BeanUtils.setProperty(obj, field.getName(), tempStr); } } list.add(obj); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally { DBCloseUtils.closeCSR(conn, pstmt, rs); } return list; } 方法2 public static <T> List<T> query(String sql, Class<T> clazz, Object[] parameters) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; ResultSetMetaData metaData = null; List<T> list = new ArrayList<T>(); int index = 1; try { pstmt = conn.prepareStatement(sql); } catch (SQLException e) { e.printStackTrace(); } if (parameters != null && parameters.length != 0) { for (int i = 0; i < parameters.length; i++) { try { // pstmt.setObject(第几个参数, 替换成什么); pstmt.setObject(index, parameters[i]); } catch (SQLException e) { e.printStackTrace(); } } } try { rs = pstmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } // 封装resultset try { metaData = rs.getMetaData(); } catch (SQLException e) { e.printStackTrace(); }// 取出列的信息 int columnLength = 0; try { columnLength = metaData.getColumnCount(); } catch (SQLException e) { e.printStackTrace(); }// 获取列数 try { while (rs.next()) { // 通过反射机制创建一个对象 T result = clazz.newInstance(); for (int i = 0; i < columnLength; i++) { String metaDataKey = metaData.getColumnName(i + 1); Object resultsetValue = rs.getObject(metaDataKey); if (resultsetValue == null) { resultsetValue = ""; } Field field = clazz.getDeclaredField(metaDataKey); field.setAccessible(true); field.set(result, resultsetValue); } list.add(result); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } return list; } }
List 排序,取最小值(包括重复的)
如题,现有一个对象集合List<Object>,对象有个属性price,按price排序,取最小值, 但是可能有几个对象的price都是最小值,怎么取出来? **求思路,除开直接遍历取哦**
Java遍历对象数组遇到问题
List<EquipmentGroupJoinVO> listResults=....; EquipmentGroupJoinVO[] eqvo = new EquipmentGroupJoinVO[listsize]; eqvo = listResults.toArray(eqvo); List<UserVmVO> vmresult = .....; //获得关系前先清除上次结果,将集合关系获取放在循环外面减少数据库操作次数 listconns.clear(); listconns = this._eqGroupmanager.searchGuaConnections(); for(int m = 0 ; m<eqvo.length; m++){ Vector<UserVmVO> tempvms = new Vector<UserVmVO>(); tempvms.clear(); for(int i=0;i<vmresult.size();i++){ UserVmVO vmvo = new UserVmVO(); vmvo= vmresult.get(i); //"0" 表示与当前指定设备组已经绑定;“1”表示未与任何设备组有关联,可以被分配;“-1” 表示已经被分配到其他设备组 System.out.println("groupID:"+eqvo[m].getId()); String res = CheckifIngroup(vmvo, eqvo[m].getId(),listconns); if(res.equals("0")){ vmvo.setSelected("true"); }else{ vmvo.setSelected("false"); } tempvms.add(vmvo); } //将设备信息作为child保存在设备组中 eqvo[m].childs.clear(); eqvo[m].childs = tempvms; //结果正确(最后一次打印时的值为true) System.out.println(m+"---<--m-"+"eqvonew : "+eqvo[m].getChilds().get(0).getSelected()); } //重新遍历eqvo,发现所有eqvo对象下的childs集合中的对象UserVmVO的属性selected的值都为true????? for(int h=0;h<eqvo.length;h++){ //结果错误 System.out.println("\n\n"+h+"---<--m-"+"eqvonew : "+eqvo[h].getChilds().get(0).getSelected()); }
Geotools 创建shape文件报错,无法设置中文属性
feature.setAttribute(0, polygon.getCode()); 这个属性名乱码,如果设置成中文就报错 eg: feature.setAttribute("图斑编码", polygon.getCode()); ``` package com.kero99.utils; /** * 创建shape文件 * @author ygc * */ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Serializable; import java.io.StringReader; import java.io.StringWriter; import java.net.MalformedURLException; import java.net.URLEncoder; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.geotools.data.FeatureWriter; import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.Transaction; import org.geotools.data.shapefile.ShapefileDataStore; import org.geotools.data.shapefile.ShapefileDataStoreFactory; import org.geotools.data.shapefile.dbf.DbaseFileHeader; import org.geotools.data.shapefile.dbf.DbaseFileReader; import org.geotools.data.shapefile.files.ShpFiles; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureIterator; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.feature.IllegalAttributeException; import org.geotools.feature.simple.SimpleFeatureBuilder; import org.geotools.feature.simple.SimpleFeatureTypeBuilder; import org.geotools.feature.type.Types; import org.geotools.geojson.feature.FeatureJSON; import org.geotools.geojson.geom.GeometryJSON; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.geotools.util.Converters; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.feature.type.AttributeDescriptor; import com.kero99.patterns.IShape; import com.kero99.pojo.Zdesignpolygon; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.MultiPolygon; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** * Geotools文档:http://docs.geotools.org/latest/javadocs/ * 创建shape文件 * @author ygc * */ public class createShapeFile { public static void main(String[] args) throws IOException { //创建文件路径 String path="C:\\新建文件夹\\y.shp"; File file=new File(path); //创建坐标 String str="{\"type\":\"MultiPolygon\",\"coordinates\":[[[[125.00088033726706,43.40147359017337],[124.99679348328742,43.401096616676305],[124.99694837503591,43.40186442431018],[124.99750584741349,43.401955866321565],[124.99803787708493,43.40230992248794],[124.9980525639301,43.40490599341744],[124.99939124766493,43.4039525077194],[124.999703712491,43.4048699875539],[124.99866141203354,43.40606649155232],[125.00126143620331,43.40562431171862],[125.00257777597052,43.403552077651824],[125.00295876012552,43.40274710316431],[125.00307123554897,43.40186767450569],[125.00088033726706,43.40147359017337]]]]}"; JSONObject jsonObject = JSONObject.fromObject(str); JSONArray jsonArray = jsonObject.getJSONArray("coordinates"); System.out.println(jsonArray); //创建对象添加属性信息 Zdesignpolygon polygon=new Zdesignpolygon(); polygon.setCode("106"); polygon.setCoordinate(str); polygon.setMark("tktt3"); polygon.setName("土坎梯田"); polygon.setState("坡耕地"); polygon.setNumber(12.64); polygon.setSlope(9.0); //添加创建的路径 Map<String, Serializable> params = new HashMap<String, Serializable>(); params.put(ShapefileDataStoreFactory.URLP.key, file.toURI().toURL()); ShapefileDataStoreFactory sf = new ShapefileDataStoreFactory(); //创建shape文件数据仓库根据工厂 ShapefileDataStore ds = (ShapefileDataStore) sf.createDataStore(file.toURI().toURL()); ds.setCharset(Charset.forName("GBK")); //ShapefileDataStore ds = (ShapefileDataStore) new ShapefileDataStoreFactory().createDataStore(params); //创建要素模板 SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); //设置wgs84格式 tb.setCRS(DefaultGeographicCRS.WGS84); //设置全局状态 tb.setName("shapefile"); //添加属性类型 tb.add("图斑编码", String.class); tb.add("措施代码", String.class); tb.add("措施名称", String.class); tb.add("利用现状", String.class); tb.add("措施数量", Double.class); tb.add("坡度", Double.class); tb.add("the_geom", MultiPolygon.class); //设置FeatureType数据存储。该方法将删除任何现有的本地资源或抛出IOException如果远程数据存储。 //这个元素附加源和附加Javadoc,因此没有能找到Javadoc。 ds.createSchema(tb.buildFeatureType()); //设置编码格式 //     类似的API FeatureReader后,调查组成员功能使用next()你可以叫删除()或修改后写()。 // 如果你不调用这两个方法调用之前hasNext(),或下(),这个功能将被修改的。 //   这个API允许修改,编写和基于过滤器的修改。请参阅ContentDataStore使用这个API实现共同opperations的例子。 // FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(ds.getTypeNames()[0], Transaction.AUTO_COMMIT); FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(ds.getTypeNames()[0], null); // FeatureWriter<SimpleFeatureType, SimpleFeature> featureWriter = ds.getFeatureWriter(Transaction.AUTO_COMMIT); SimpleFeature feature = featureWriter.next(); // 取出特征里面的属性集合 //添加属性值和坐标 feature.setAttribute(0, polygon.getCode()); feature.setAttribute(1, polygon.getMark()); feature.setAttribute(2, polygon.getName()); feature.setAttribute(3, polygon.getState()); feature.setAttribute(4, polygon.getNumber()); feature.setAttribute(5, polygon.getSlope()); //转换geojson GeometryJSON geometryJSON2 = new GeometryJSON(15); Geometry geometry = geometryJSON2.read(new StringReader(polygon.getCoordinate())); feature.setAttribute("the_geom", geometry); featureWriter.write(); featureWriter.close(); ds.dispose(); } protected boolean validating; protected Map<String, String> index; protected SimpleFeatureType featureType; protected Object[] values; public SimpleFeatureType getFeatureType() { return this.featureType; } // public void setAttribute(String name, Object value) { // String idx = this.index.get(name); // if (idx == null) { // throw new IllegalAttributeException("Unknown attribute " + name); // } else { // this.setAttribute(idx, value); // } // } } ```
java编写app接口,怎样在后台实现同一页面显示三种不同状态的任务,每种状态只显示一个任务。
我的思路是: 首先将需要的属性封装到list集合,通过sql查出三个任务。 任务名称分别为title1,title2,title3。将String类型的status(状态)设为常量。状态分为三种:分别是视频,拍照和文字。将三种状态与任务名称作比较,但我不知道怎样将状态分成三份,分别付给每一个任务。在与手机端进行传值时,status传值传的是一个字符,使三个任务同时变成了一个状态。怎样将他们区分呢?
两个对象之间数据传递,有特殊情况求教
举个简单的例子, 有4个对象 A,B,C,D AB属性完全相同,CD属性完全相同。但是其中有个list属性,A中的list属性 放着C对象的集合,B中的list属性 放着D对象的集合,现在要将A中的值赋给B,如何实现,或者说如何设计。。 A{ private Integer id; private List<C> myList; } B{ private Integer id; private List<D> myList; } C{ private Integer age; } C{ private Integer age; } 这个问题的需求在于,外部请求的参数对象,转换成我的内部对象,好进行下一步操作。
表单提交数据里面包含子类集合的问题
这是实体类里的属性,其中包含一个子类的list ``` public class Construct { //专题建设ID private String id; //专题建设标题 private String title; //责任部门 private String deptId; //专题建设描述 private String depict; //建设开始时间 private String beginTime; //建设预计结束时间 private String endTime; //创建时间 private Date createTime; //专题建设时间节点 private List<ConstructSub> constructSub; //查询条件 private String keys; ``` 页面添加的时候是根据客户需要生成一行让客户输入时间节点及信息, 客户可以填10条,也可以删除第8条,值提交9条。 虽然我添加一行的时候写上了比如第八条 constructSub[7].nodeTime,但是客户如果删除了这条数据,那么这个list还是有10条,只不过第八条里面都是null 有没有自动封装的方法,没有de话,那就只能这么用了,后台判断list里的值是否为null在去掉...好像有点麻烦 哥哥们,我是页面提交的时候,controller里不接收list啊,![图片说明](https://img-ask.csdn.net/upload/201709/25/1506322449_347822.png) 我点击添加节点按钮,多出来一行,我要把这些节点一起跟着我整个表单一起提交 后台接收的时候construst所有的属性都有值,唯独List<ConstructSub> construct这个属性没有, 如果我页面是用 construct[0].nodeTime,给标签起name,可以拿到,可是如果用户删除了这条,我自己创建的自增还是继续增加,list里就多了一条空记录
Java前辈们,帮我解决个开发上的问题
界面上省市区下拉框的value值是数字,存到加盟申请表里的provid,cityid,zoneid字段(Number)。真正的名称是在Area这个行区表里。 当我们查询加盟申请表并以表格显示一行行输出的时候,不希望显示出来的是provid,cityid,zoneid,这些数字.我要的是真正的省市区名称显示出来。 请问你们是怎么做的? 难道是循环Hibernater对加盟申请表查过来的List集合?再根据集合里每条记录的provid,cityid,zoneid去行区表里把相应的名称查过来,组装好后再一条条记录塞回List。最后再返回List到界面用标签输出???? 感觉这样子好像很不好。我觉得应该是用其他方式做的吧。具体怎么做的,能告诉一下吗。谢谢。。。 外界Java开发普遍是用什么方式来处理这个情况的??? 据说用pojo封装来做,但是查询到记录后到底怎么使用这个pojo来替换数据呢?谁能大概说明一下,非常感谢。 要说明一下的是我们的所有表都不设外键,全部通过程序控制的,所以在加盟申请表里没有AREA对象属性的。否则的话问题就好办了。
mybatis一对多关联查询问题
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'roles' in 'class com.jsp.system.user.bo.User' at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:380) at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:170) at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:152) at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:48) at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:116) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.instantiateCollectionPropertyIfAppropriate(DefaultResultSetHandler.java:451) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyNestedResultMappings(DefaultResultSetHandler.java:800) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:758) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForNestedResultMap(DefaultResultSetHandler.java:724) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:267) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:239) at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:153) at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:60) at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:73) at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:60) at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:267) at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:137) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> user.xml配置 <mapper namespace="User"> <resultMap id="UserMap" type="User"> <id property="user_id" column="user_id"/> <result property="userName" column="userName" /> <result property="password" column="password" /> <result property="age" column="age" /> <!-- 一对多的关系 --> <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 --> <collection property="roles" javaType="list" ofType="Role"> <id property="role_id" column="role_id"/> <result property="role_name" column="role_name"/> <result property="role_code" column="role_code"/> </collection> </resultMap> <!-- 按照用户ID查找角色信息 --> <select id="selectUserRole" parameterType="String" resultMap="UserMap"> select u.userName,r.role_name,r.role_name from s_user u,s_role r, s_relate g where u.user_id=g.user_id and r.role_id=g.role_id and u.user_id=#{user_id} </select> </mapper> 报错了,找了半天不知道什么原因. 麻烦大神帮看下,或留个联系方式.
小弟请教Struts2+JSON的集合传递
<p> </p> <p>我在前端写这样一段:</p> <p> </p> <p> </p> <pre name="code" class="java">//获取表单值,并以json的数据形式保存到params中 var params = { list : [ { "name" : "小明", "age" : 12 }, { "name" : "小红", "age" : 14 } ] } //使用$.post方式 $.post(url, //服务器要接受的url params, //传递的参数 function cbf(data) { //alert(data); }, 'json' //返回的类型 ); });</pre> <p> 在url提交到的Action为:</p> <p> </p> <p> </p> <pre name="code" class="java">public class AjaxLoginAction extends ActionSupport { private List list; public List getList() { return list; } public void setList(List list) { this.list = list; } }</pre> <p> </p> <p> </p> <p>我打印list的size() 的个数为2</p> <p> </p> <p>这个list里面放的是2个什么对象?</p> <p> </p> <p>可是我怎么遍历出"小红"和"小明"</p> <p> </p> <p>我写了个Student Class有Name和Age属性</p> <p>(List&lt;Student&gt;)list   没有用..</p> <p>换成数组也没用...</p> <p> </p> <p>JSON反序列化?   我知道<span style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; line-height: 18px; background-color: #fafafa;">JSONObject.fromObject(String);  可是</span>怎么得到参数字符串 </p> <p> </p> <p> </p> <p>小白求指教...  希望各位能给个实例代码学习</p> <p> </p> <p> </p>
关于JSP中链接跳转的问题
我用javascript写了一个图片动态转换的效果,然后点击图片会跳入相应链接,如下javascript代码是我从其他项目代码移植过来的,结果我发现当点击进入链接页面的时候会从新打开一个新的页面,可是我想把初始的页面转换成新的页面,谁懂下列代码并且知道如何设置的,求指教! var isIE = (document.all) ? true : false; var $ = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } } var Bind = function(object, fun) { return function() { return fun.apply(object, arguments); } } var Each = function(list, fun){ for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); } }; //ie only var RevealTrans = Class.create(); RevealTrans.prototype = { initialize: function(container, options) { this._img = document.createElement("img"); this._a = document.createElement("a"); this._timer = null;//计时器 this.Index = 0;//显示索引 this._onIndex = -1;//当前索引 this.SetOptions(options); this.Auto = !!this.options.Auto; this.Pause = Math.abs(this.options.Pause); this.Duration = Math.abs(this.options.Duration); this.Transition = parseInt(this.options.Transition); this.List = this.options.List; this.onShow = this.options.onShow; //初始化显示区域 this._img.style.visibility = "hidden";//第一次变换时不显示红x图 this._img.style.width = this._img.style.height = "100%"; this._img.style.border = 0; this._img.onmouseover = Bind(this, this.Stop); this._img.onmouseout = Bind(this, this.Start); isIE && (this._img.style.filter = "revealTrans()"); this._a.target = "_blank"; $(container).appendChild(this._a).appendChild(this._img); }, //设置默认属性 SetOptions: function(options) { this.options = {//默认值 Auto: true,//是否自动切换 Pause: 1000,//停顿时间(微妙) Duration: 1,//变换持续时间(秒) Transition: 7,//变换效果(23为随机) List: [],//数据集合,如果这里不设置可以用Add方法添加 onShow: function(){}//变换时执行 }; Extend(this.options, options || {}); }, Start: function() { clearTimeout(this._timer); //如果没有数据就返回 if(!this.List.length) return; //修正Index if(this.Index < 0 || this.Index >= this.List.length){ this.Index = 0; } //如果当前索引不是显示索引就设置显示 if(this._onIndex != this.Index){ this._onIndex = this.Index; this.Show(this.List[this.Index]); } //如果要自动切换 if(this.Auto){ this._timer = setTimeout(Bind(this, function(){ this.Index++; this.Start(); }), this.Duration * 1000 + this.Pause); } }, //显示 Show: function(list) { if(isIE){ //设置变换参数 with(this._img.filters.revealTrans){ Transition = this.Transition; Duration = this.Duration; apply(); play(); } } this._img.style.visibility = ""; //设置图片属性 this._img.src = list.img; this._img.alt = list.text; //设置链接 !!list["url"] ? (this._a.href = list["url"]) : this._a.removeAttribute("href"); //附加函数 this.onShow(); }, //添加变换对象 Add: function(sIimg, sText, sUrl) { this.List.push({ img: sIimg, text: sText, url: sUrl }); }, //停止 Stop: function() { clearTimeout(this._timer); } };
Hibernate返回对象的好处?
## Hibernate返回对象的好处? 最近在公司做了2个项目,先说老项目吧。用的是ssh,原生的。所以很多从数据库查询 的方法返回的都是对象,而且因为项目比较老,比较没啥表关联。比如一个界面查询学生,返回的就是这个学生的对象的集合。我发现很不合理,因为如果这个学生加了一个关联表,比如兴趣表,那么我岂不是得改这个controller service dao层3个接口的返回值吗。 还有一个就是用的公司框架封装的,查询返回值并不是一个对象,是一个List<Map> 这个map里面放的就是对象的属性跟值,如果想要加关联表的话只要在dao层改sql就可以了。 ## 由上面2个结论,我想知道这个hibernate返回值是对象到底有啥好处? ## 如果要加关联表岂不是要大改方法?
Hibernate 级联刷新、删除问题
Hibernate 版本hibernate-core-4.0.0.Final <br /> <br />Users和Orders两个实体 <br /> <br />一个Users对应多个Orders&nbsp; 一对多 <br />多个Orders对应一个Users&nbsp; 多对一 <br /> <br /> <br />在Users实体中配置以下 <br /><pre name="code" class="java">@OneToMany(mappedBy="users",cascade={CascadeType.ALL}) private List&lt;Orders&gt; orders; public List&lt;Orders&gt; getOrders() { return orders; } public void setOrders(List&lt;Orders&gt; orders) { this.orders = orders; }</pre> <br /> <br />级联删除的时除 <br /><pre name="code" class="java">Users u = (Users)session.get(Users.class, 52); List&lt;Orders&gt; l = u.getOrders(); Orders o = null; for(Iterator&lt;Orders&gt; it = l.iterator();it.hasNext();) { o = it.next(); if(o.getOrderId()==57) { //需要先从List中删除,再从session中删除 it.remove(); session.delete(o); } }</pre> <br />为什么从list集合中删除,还需要再手动从session中删除,CascadeType已设置为ALL了啊 <br /> <br />级联刷新 <br /><pre name="code" class="java">//测试refresh,user中的list Session s1 = HibernateUtils.getSession(); Users u = (Users)s1.get(Users.class, 52); List list = u.getOrders(); //断点执行到此处,我修改数据库中Orders中的name值为100后refresh s1.refresh(u); List list2 = u.getOrders(); //断点执行到此处,查看list2集合Orders的name值为旧值1,并不是数据库中最新的100 s1.close();</pre> <br />为什么此处的级联刷新对list不起作用,只对Users非关系映射的属性起作用CascadeType已设置为ALL了啊 <br /> <br />
关于velocity 显示list值的问题
写一个velocity的小demo,找不出错来了 :cry: 大家看帮我看看是哪里错了,每个list里的数据就是不能显示出来 后台action代码: [code="java"] /*数据列表*/ List listAll = new ArrayList(); List<Test> ttlist = wplStatusServiceBean.findByHql("from Test where 1=1"); for (int i=0;i<wplStatuslist.size();i++ ) { List<String> arrs = new ArrayList<String>(); Test status = (Test)ttlist.get(i); System.out.println(status.getPdstatusid()); arrs.add(status.getPdstatusid()); arrs.add(status.getPdstatus()); arrs.add(status.getUseflag()); arrs.add(status.getSysflag()); listAll.add(arrs); } /*列名集合*/ List cels = new ArrayList<String>(); cels.add("状态"); cels.add("用户启用"); cels.add("系统启用"); /*属性名集合*/ List attris = new ArrayList<String>(); attris.add("pdstatusid"); attris.add("pdstatus"); attris.add("useflag"); attris.add("sysflag"); request.setAttribute("listAll", listAll); /*action 提交路径URL*/ request.setAttribute("actionStr", request.getContextPath()+"/wplStatusAction.do?method=saveOrUpdateAll"); /*actionform name*/ request.setAttribute("actionform", "testForm"); request.setAttribute("cels", cels); request.setAttribute("attris", attris); [/code] 前台.vm文件输出: [code="java"] <form action=$!actionStr name=$!actionform id="" method="post"> <table width="70%" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#666666" id="myTable"> <TBODY> <THEAD> <TR class=TableHeader height="23"> #foreach($!cel in $!cels) <td align="center" nowrap class="td_filter tablehead">1_ ${cel}</Td> #end <td align="center" nowrap class="td_filter tablehead">操作</td> </TR> </THEAD> #foreach($!arrsList in $!listAll) <tr bgcolor="#ffffff" class="onmover1" > <input type="hidden" name="recflag" value="1" /> <input type="hidden" name="pdstatusid" value="" /> #foreach($!arrs in $!arrsList) <td height="23" align=center noWrap> $!arrs </td> #end <td align=center noWrap> <input type="checkbox" name="select" title="" value=""/> </td> </tr> #end </table> </form> [/code] 运行后,查看原代码,只有 <form action=$!actionStr name=$!actionform id="" method="post">里的action,name取到了值,.... [b]问题补充:[/b] 哈哈 :idea: :idea: 你们都对啦,飞W下,呵呵。。。。 #foreach($!cel in $!cels)这样的改为 foreach($cel in $!cels)也行 . 输出值的时候在变量前加! 如果为null的时候就不显示,否则会显示源码:!**出来.
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片 c# 图片颜色调整 最快 c#多张图片上传 c#密封类与密封方法
立即提问