精华内容
下载资源
问答
  • 我需要将一个数据存进list,需要放在中间,不知道list的最终长度,该怎么做
  • 安卓服务器发送List数据

    千次阅读 2016-04-12 20:43:04
    // 如果不是通过URL的Get形式上传数据时,调用此方法,获取上传的list数据 getListDataByObjectInputStream(request, response); } catch (SQLException e) { e.printStackTrace(); } catch ...

    第一步:

    首先写一个自定义的JavaBean,以UserInfo.java为例,需要实现对象序列化的接口,因为之后输出流对象需要实现输出可序列化的对象。不这样的话,后续时发送时会报异常

    package xl.java.bean;  
    
    import java.io.Serializable;  
    
    /** 
     * 用户信息 
     * @author xl 2012-9-20 
     */  
    public class UserInfo implements Serializable  
    {  
    
        private static final long serialVersionUID = 1L;  
    
        /** 
         * 用户名 
         */  
        private String UserName;  
    
        /** 
         * 密码 
         */  
        private String Password;  
    
        /** 
         * 昵称 
         */  
        private String NickName;  
    
        /** 
         * QQ号 
         */  
        private int QQNumber;  
    
        /** 
         * 电话号 
         */  
        private String TelNumber;  
    
        /** 
         * 年龄 
         */  
        private int Age;  
    
        public String getUserName()  
        {  
            return UserName;  
        }  
    
        public void setUserName(String userName)  
        {  
            UserName = userName;  
        }  
    
        public String getPassword()  
        {  
            return Password;  
        }  
    
        public void setPassword(String password)  
        {  
            Password = password;  
        }  
    
        public String getNickName()  
        {  
            return NickName;  
        }  
    
        public void setNickName(String nickName)  
        {  
            NickName = nickName;  
        }  
    
        public int getQQNumber()  
        {  
            return QQNumber;  
        }  
    
        public void setQQNumber(int qQNumber)  
        {  
            QQNumber = qQNumber;  
        }  
    
        public String getTelNumber()  
        {  
            return TelNumber;  
        }  
    
        public void setTelNumber(String telNumber)  
        {  
            TelNumber = telNumber;  
        }  
    
        public int getAge()  
        {  
            return Age;  
        }  
    
        public void setAge(int age)  
        {  
            Age = age;  
        }  
    }  

    注意,服务器与客户端的javabean包名必须一致,不然的话会报ClassNotFoundException异常。

    第二步:

    编写客户端模拟发送数据的类SendData.java。中间一大段的连接处理,具体解释可参考:
    JDK中的URLConnection参数详解 - wlzf6296149的专栏 - 博客频道 - CSDN.NET

    package xl.java.send;  
    
    import java.io.IOException;  
    import java.io.InputStream;  
    import java.io.ObjectOutputStream;  
    import java.io.OutputStream;  
    import java.net.HttpURLConnection;  
    import java.net.URL;  
    import java.net.URLConnection;  
    import java.util.ArrayList;  
    import java.util.List;  
    
    import xl.java.bean.UserInfo;  
    
    /** 
     * 模拟发送数据 
     * @author xl 2012-9-20 
     *  
     */  
    public class SendData  
    {  
    
        private static final String BASIC_URL_QUEST =  
                "http://192.168.1.1:8080/test/TestServlet";  
    
        public static void main(String[] args)  
        {  
            SendData senddata=new SendData();  
            try  
            {  
                senddata.sendDataToServer();  
            }  
            catch (IOException e)  
            {  
                e.printStackTrace();  
            }  
        }  
    
        /** 
         * 上传处理结果 
         *  
         * @throws IOException 
         *  
         */  
        private void sendDataToServer() throws IOException  
        {  
            //用于servlet判别请求,执行相应方法  
            String QuestId = "SubmitUserInfoList";  
            //模拟发送自定义类型的List数据  
            List<UserInfo> listdata = new ArrayList<UserInfo>();  
            for (int i = 0; i < 10; i++)  
            {  
                UserInfo li = new UserInfo();  
                li.setUserName("XL" + i);  
                li.setPassword("00000" + i);  
                li.setQQNumber(1234567 + i);  
                li.setTelNumber("15012344321" + i);  
                li.setNickName("xiaolang" + i);  
                li.setAge(18 + i);  
                listdata.add(li);  
            }  
    
            URL url = new URL(BASIC_URL_QUEST);  
            try  
            {  
                URLConnection con = url.openConnection();  
                HttpURLConnection httpUrlConnection = (HttpURLConnection) con;  
                httpUrlConnection.setUseCaches(false);  
                httpUrlConnection.setDoOutput(true);  
                httpUrlConnection.setDoInput(true);  
                httpUrlConnection.setRequestProperty("Content-type",  
                        "application/x-java-serialized-object");  
                //不设置这个默认为Get,服务器会没反应,不知道什么情况,  
                //纠结了很久,改成Post的话,servlet里的  
                //doPost方法就有反应了  
                httpUrlConnection.setRequestMethod("POST");  
                httpUrlConnection.connect();  
                OutputStream outStrm = httpUrlConnection.getOutputStream();  
                ObjectOutputStream oos = new ObjectOutputStream(outStrm);  
                //输出流第一段数据是QuestId的值  
                oos.writeObject(QuestId);  
                //第二段数据是List数据  
                oos.writeObject(listdata);      oos.flush();  
                oos.close();  
                InputStream inStrm = httpUrlConnection.getInputStream();  
                System.out.println("数据发送成功!");  
            }  
    
            catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
        }  
    }  

    编写servlet,接收数据

    import java.io.IOException;  
    import java.io.InputStream;  
    import java.io.ObjectInputStream;  
    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
    import java.sql.Statement;  
    import java.util.List;  
    
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
    
    import xl.java.bean.UserInfo;  
    
    /** 
     * @author xl 2012-9-20 
     *  
     */  
    public class TestServlet extends HttpServlet  
    {  
    
        private static final long serialVersionUID = 1L;  
    
        private Connection mConnection = null;  
    
        private Statement mStatement = null;  
    
        private String QuestId = "";  
    
        private static final String SUBMIT_USERINFO_LIST = "SubmitUserInfoList";// 客户端提交到用户信息  
    
        protected void doPost(HttpServletRequest request,  
                HttpServletResponse response)  
        {  
            System.out.println("________---------doPost--------_____________");  
    
            try  
            {  
                // 链接数据库  
                Class.forName("org.gjt.mm.<a href="http://lib.csdn.net/base/14" class="replace_word" title="undefined" target="_blank" style="color: rgb(223, 52, 52); font-weight: bold;">mysql</a>.Driver").newInstance();  
                mConnection =  
                        DriverManager  
                                .getConnection("jdbc:mysql://localhost/test?user=root&password=123&useUnicode=true&characterEncoding=UTF-8");  
                mStatement =  
                        mConnection.createStatement(  
                                ResultSet.TYPE_SCROLL_INSENSITIVE,  
                                ResultSet.CONCUR_READ_ONLY);  
                // 如果不是通过URL的Get形式上传数据时,调用此方法,获取上传的list数据  
                getListDataByObjectInputStream(request, response);  
            }  
            catch (SQLException e)  
            {  
                e.printStackTrace();  
            }  
            catch (InstantiationException e)  
            {  
                e.printStackTrace();  
            }  
            catch (IllegalAccessException e)  
            {  
                e.printStackTrace();  
            }  
            catch (ClassNotFoundException e)  
            {  
                e.printStackTrace();  
            }  
            catch (IOException e)  
            {  
                e.printStackTrace();  
            }  
    
        }  
    
        /** 
         * 获取输入流中的数据 
         *  
         * @param request 
         * @param response 
         * @throws IOException 
         * @throws ClassNotFoundException 
         */  
        private void getListDataByObjectInputStream(HttpServletRequest request,  
                HttpServletResponse response) throws IOException,  
                ClassNotFoundException  
        {  
            System.out.println("---------getListDataByObjectInputStream--------");  
            response.setContentType("text/html");  
            InputStream inStream = request.getInputStream();  
            ObjectInputStream objInStream = new ObjectInputStream(inStream);  
            QuestId = (String) objInStream.readObject();  
            @SuppressWarnings("unchecked")  
            List<UserInfo> inList = (List<UserInfo>) objInStream.readObject();  
            if (QuestId.equals(SUBMIT_USERINFO_LIST))  
            {  
                System.out.println("QuestId.equals(SUBMIT_ORDER_LIST)");  
                submitOrderList(request, response, inList);  
            }  
            objInStream.close();  
            System.out.println("objInStream.close()");  
        }  
    
        /** 
         * @param request 
         * @param response 
         * @param inList 
         */  
        private void submitOrderList(HttpServletRequest request,  
                HttpServletResponse response, List<UserInfo> inList)  
        {  
            // 获取数据,插入数据库  
            for (UserInfo item : inList)  
            {  
                System.out.println("UserName=" + item.getUserName());  
                System.out.println("Password=" + item.getPassword());  
                System.out.println("NickName=" + item.getNickName());  
                System.out.println("QQNumber=" + item.getQQNumber());  
                System.out.println("TelNumber=" + item.getTelNumber());  
                System.out.println("Age=" + item.getAge() + "\n");  
            }  
            /** 
             * 插入数据库代码可以写在这.. 
             */  
        }  
    }  

    最后:

    运行SendData.java文件,可看到控制台输出,根据前面的设定我们知道,客户端和服务端已经建立连接,并且数据成功发送给了服务端

    参考链接:

    关于servlet服务端接收客户端发送的List

    展开全文
  • 【Redis学习】:list数据类型详解

    千次阅读 2017-05-29 22:09:27
    list数据结构 在redis中,list数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,redis将为该键创建一个新的...
    list数据结构
    在redis中,list数据结构是按照插入顺序的字符串链表,和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库删除,list中可以包含最大元素数是4294967295.
    从元素插入和删除的效率来看,如果我们是在链表的两头插入或删除元素时,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在常量时间内完成,然而需要说明的是,如果元素插入或删除操作是作用于链表中间,那将会是非常低效的。
    1、ArrayList使用数组方式存储数据,所以根据索引查询数据速度快,而新增或者删除元素时需要涉及到位移操作,所以比较慢。
    2、LinkedList使用双向链表方式存储数据,每个元素都记录前后元素的指针,所以插入、删除数据时只是更改前后元素的指针指向即可。速度非常快,然后通过下标查询元素需要从头开始索引,所以比较慢。
    3、双向链表增加数据

    4、双向链表删除数据

    常用命令
    两端添加
    lpush key values[value1 value2 ...]
    在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据,插入成功,返回元素的个数。

    rpush key values[value1 value2 ...]
    在该list的尾部添加元素

    查看链表
    lrange key start end
    获取list中从start到end的元素的值,start、end从0开始计数,也可以是负数,若为-1则表示list尾部的元素,-2则表示倒数第二个,以此类推...

    另一个

    两端弹出
    lpop key
    返回并弹出指定的key关联的list中的第一个元素,即头元素,如果该key不存在,返回null,若key存在,则返回list的头部元素。

    rpop key
    从尾部弹出元素

    获取列表中元素的个数
    llen key
    返回指定的key关联的list中的元素的个数

    lpushx key value
    仅当参数中指定的key存在时,向关联的list的头部插入value,如果不存在,将不进行插入。

    rpushx key value
    在该list的尾部添加元素

    lrem key count value
    删除count个值为value的元素,如果count大于0,从头向尾比那里并删除count个值为value的元素,如果count小于0,则从尾部遍历并删除,如果count等于0,则删除list中所有等于value的元素、

    lset key index value
    设置list中的index的下标的元素值,0代表list的头元素,-1代表list的尾元素,操作列表的下标不存在抛出异常。

    linsert key before|after pivot value
    在pivot元素前或者后插入value这个元素
    在第一个3之前插入4

    在第一个3之后插入5

    rpoplpush resource destination
    list中的尾部元素弹出并添加到头部,这是一个循环操作
    将mylist右端弹出,压入到mylist1左端

    将mylist右端弹出,压入到mylist左端

    使用场景
    rpoplpush的使用场景
    redis的list经常会被用于消息队列的服务,以完成多程序之间的消息转换,假设一个应用程序正在执行lpush操作向列表中添加新的元素,我们通常将这样的程序称之为生产者(Producer),而另一个应用程序正在执行rpop操作从list中取出元素,我们称这样的程序为消费者(Consumer)。如果此时,消费者程序取出消息元素后立即奔溃,由于该消息已经被取出且没有被正常处理,那么我们就可以认为该消息已经丢失,由此可能导致业务数据丢失,或业务状态的不一致等现象的发生。直到消费者程序完成正常的处理逻辑后再将该消息从备份队列中删除。同时我们还可以提供一个守护进程,当发现备份列表中的消息过期时,可以重新将其再放回到主消息队列中,以便其它的消费者程序继续处理。




    展开全文
  • list为原先的总集合,newlist为获取特定区域后集合,pageindex表示选择的特定页码数据,每页十条 if(pageIndex*10>list.size()){ newlist=list.subList((pageIndex-1)*10, list.size()); }else{ newlist=list....

    list为原先的总集合,newlist为获取特定区域后集合,pageindex表示选择的特定页码数据,每页十条

    if(pageIndex*10>list.size()){

    newlist=list.subList((pageIndex-1)*10, list.size());
    }else{
    newlist=list.subList((pageIndex-1)*10, pageIndex*10);

    }

    注意newList虽然为新的集合但是修改newList中的数据,list中的数据同样改变

    展开全文
  • 代码如下: if(queryBean.PageInfo.... list = list.GetRange(queryBean.PageInfo.StartIndex, list.Count - queryBean.PageInfo.StartIndex); else list = list.GetRange(queryBean.PageInfo.StartIndex, queryBe.

    代码如下: 

    if(queryBean.PageInfo.StartIndex+ queryBean.PageInfo.PageSize> list.Count)
        list = list.GetRange(queryBean.PageInfo.StartIndex, list.Count - queryBean.PageInfo.StartIndex);
    else
        list = list.GetRange(queryBean.PageInfo.StartIndex, queryBean.PageInfo.PageSize);

    执行前:

    执行后:

    展开全文
  • java数据结构之List

    千次阅读 2018-09-07 10:03:56
    List是java中重要的数据结构之一,这里介绍常用的3种实现方式:ArrayList、Vector、LinkedList。 类图如下: 可以看到,ArrayList、Vector、LinkedList都是AbstractList的实现。而AbstractList实现了List接口,...
  • android List去掉重复数据

    万次阅读 2015-10-20 10:03:07
    利用了Set不重复的特性 public static List removeDuplicateWithOrder(List list) { Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNe
  • List数据结构的实现(JDK1.8)

    万次阅读 热门讨论 2020-09-19 16:27:19
    Java深入篇~04.List数据结构的实现(JDK1.8) 上一篇文章 前言        通常程序总是根据运行之后才知道的某些条件去创建对象。在此之前并不知道所需对象的数量,甚至也不知道对象的...
  • ![图片说明](https://img-ask.csdn.net/upload/201512/04/1449199839_652888.png)
  • 常用数据结构 List set map

    千次阅读 2014-11-17 14:04:28
    ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。在具体应用时可以根据需要自由选择。前面...
  • 1.获取6到13之间的数据:items.slice(6,13) <li v-for="(item,index) in items.slice(6,13)" :title="item.title" :key='index'> <a :href="item.url" :title="item.title" class="list-url"> <img...
  • 在项目当中,使用分页方式分批次查询数据并渲染到页面是一种相当普遍的做法。目的是避免浏览器一次性加载过多的数据导致的页面迟缓或者崩溃。另外,在数据总量过大的情况下,一次性将内容都查询出来,查询出来的结果...
  • 目录什么是列表List抽象数据类型ListList的基本操作Python实现链表:节点Node 什么是列表List 一种数据项按照相对位置存放的数据集,特别的,被称为“无序表unordered list”, 其中数据项只按照存放位置来索引,如第1...
  • Python 小练习 求list中间

    千次阅读 2016-06-24 20:25:01
    题目要求:队列表内的数字求中间数 如果列表内元素数量为奇数,则排序后取排序位置最中间的数值。 如果列表内元素数量为偶数,则取排序后排序位置最中间的2个数值的平均数 代码如下: def median(s):  n=...
  • 在开发的过程中要处理...这里是用一个List来作为中间载体,每次取出一定量的数据写入Kafka中,并且写入之后进行短时间的休眠,防止数据堆积过多。 优化代码: // 装填100条数据 for (int i = 0; i < list....
  • python数据类型 列表 list(有序)

    万次阅读 2018-05-06 11:45:37
    列表:list定义: 列表是由一系列元素组成的, 元素与元素之间可能没有任何的的关联关系, 但他们之间有先后顺序关系 列表是一种容器 列表是一种序列 列表是可以被改变的序列列表是可变的可以存放任意列表是一...
  • 最开始走了弯路,在循环外面新建了对象,然后保存在list集合里面的东西被覆盖,全是最后一次设置的值; config是方法的参数,里面有两个值appIds、companyCodes 封装的是list,要进行组合 例如:appIds里的值是A 、B...
  • list中add数据时,需注意!!!

    千次阅读 2016-06-17 19:11:03
    向List中add()时,size()正常递增,但进去的元素却都是一样的重复着。注意了,很有可能是你加入得元素是某个bean,且这个bean被你在调用的类中定义成域成员,并实例化了。这时候你再循环改变bean里的内容add()...
  • 在C#的List集合等数据类型变量中,我们可以使用List集合的Insert方法在指定的索引位置插入一个新数据,例如指定在List集合的第一个位置写入一个新数据或者在List集合的中间某个位置插入个新数据List集合类的Insert...
  • 业务场景:定时任务同步中间数据到业务表,如果中间表中存在相同维度的多条数据(未创建唯一索引),取最新一条数据,并对查询的中间数据进行更新。 方式1 // 根据结果表唯一索引分组,取中间表重复最新一条...
  • 这个方法不是唯一的方法,其实最简单的方法就是我在第二个for循环里面重新new一个vmNew对象,然后通过set和get方法将vm对象...对象vm将重新set对象值后重新add到list里面,覆盖前面add的值,一下方法是实现了不覆盖...
  • List dsad=Tkdao.hggetjtzt("历史", "2014-05-07 00:00:00", "2014-05-07 23:59:59"); //测试 //获得做题记录 // for (int i = 0; i (); i++) { // // Hgztqk hg = dsad
  • 中间节点数据(能完这快慢指针) 删除链表 运行示例如下: 程序代码如下: // 单链表实现方式 // 利用快慢指针,查找单链表的中间节点 #include <stdio.h> #include <string.h> #include <...
  • android中list插入数据到某个个位置

    千次阅读 2017-04-26 16:02:20
    list.contains(bean类对象)来判断集合中是否包含此 bean类然后 通过下面代码 进行插入 和移除List<String> list = new List(); list.add("b"); list.add("d"); list.set(0,"a");//替换索引为0的值 //
  • list中插入一个数据

    千次阅读 2010-09-21 14:43:00
    list.ForEach(new Action(delegate(t_ProductPolicyDivide temp) { temp.PolicyID = revalue; }));
  • Unity中List数据的自动排序

    千次阅读 2018-10-18 14:55:24
    using UnityEngine; using System.Collections; using System.Collections.Generic; public class xuhaitao : MonoBehaviour { // Use this for initialization ... List&lt;person&gt; m ...
  • list的任意位置插入数据

    千次阅读 2013-03-15 11:59:24
    int i; list::iterator j = testint.begin(); for (i=0;i!=testint.end();++i) { ++j; } testint.insert(j, data); 其中n为插入的位置, data为插入的数据
  • SkipList跳跃表 有序的数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 平均时间复杂度:O(logN)O(logN)O(logN) 底层无索引的链表: 带索引,如果需要找中间的某个节点,比如...
  • C++存储数据结构之一List

    千次阅读 2012-11-29 15:10:48
    双向循环链表list  list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的...
  • 场景 ...在后台返回给前台JSON数据时,需要将List中的String数据取出并在中间用拼接符连接。 实现 for (String s:qrCodeList ) { finalBarCode+=s+","; } finalBarCode=finalBarCode.substri...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 278,274
精华内容 111,309
关键字:

如何向list中间加数据