加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何从Java ArrayList获取元素

发布时间:2020-12-15 02:04:05 所属栏目:Java 来源:网络整理
导读:我有一个基本问题.我有这个ArrayList: @Named("AccountProfileController")@ViewScopedpublic class AccountProfile implements Serializable{ @Resource(name = "jdbc/Oracle") private DataSource ds; private int id; // Constructor public AccountProf
我有一个基本问题.我有这个ArrayList:

@Named("AccountProfileController")
@ViewScoped
public class AccountProfile implements Serializable
{

    @Resource(name = "jdbc/Oracle")
    private DataSource ds;
    private int id;

    // Constructor
    public AccountProfile()
    {
        // get the ID value 
        try
        {
            this.id = Integer.parseInt((String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
        }
        catch (Exception e)
        {
            this.id = 0;
        }
    }
    // Create List to store user data
    public ArrayList<userdata> dataList = new ArrayList<>();

    public class userdata
    {

        int userid;
        int groupid;
        String specialnumber;
        String username;
        String passwd;
        Date datetochangepasswd;
        String address;
        String stateregion;
        String country;
        String userstatus;
        String telephone;
        Date dateuseradded;
        Date userexpiredate;
        Date dateuserlocked;
        String city;
        String email;
        String description;

        public userdata(int userid,int groupid,String specialnumber,String username,String passwd,Date datetochangepasswd,String address,String stateregion,String country,String userstatus,String telephone,Date dateuseradded,Date userexpiredate,Date dateuserlocked,String city,String email,String description)
        {

            this.userid = userid;
            this.groupid = groupid;
            this.specialnumber = specialnumber;
            this.username = username;
            this.passwd = passwd;
            this.datetochangepasswd = datetochangepasswd;
            this.address = address;
            this.stateregion = stateregion;
            this.country = country;
            this.userstatus = userstatus;
            this.telephone = telephone;
            this.dateuseradded = dateuseradded;
            this.userexpiredate = userexpiredate;
            this.dateuserlocked = dateuserlocked;
            this.city = city;
            this.email = email;
            this.description = description;
        }

        public String getAddress()
        {
            return address;
        }

        public void setAddress(String address)
        {
            this.address = address;
        }

        public String getCity()
        {
            return city;
        }

        public void setCity(String city)
        {
            this.city = city;
        }

        public String getCountry()
        {
            return country;
        }

        public void setCountry(String country)
        {
            this.country = country;
        }

        public Date getDatetochangepasswd()
        {
            return datetochangepasswd;
        }

        public void setDatetochangepasswd(Date datetochangepasswd)
        {
            this.datetochangepasswd = datetochangepasswd;
        }

        public Date getDateuseradded()
        {
            return dateuseradded;
        }

        public void setDateuseradded(Date dateuseradded)
        {
            this.dateuseradded = dateuseradded;
        }

        public Date getDateuserlocked()
        {
            return dateuserlocked;
        }

        public void setDateuserlocked(Date dateuserlocked)
        {
            this.dateuserlocked = dateuserlocked;
        }

        public String getDescription()
        {
            return description;
        }

        public void setDescription(String description)
        {
            this.description = description;
        }

        public String getEmail()
        {
            return email;
        }

        public void setEmail(String email)
        {
            this.email = email;
        }

        public int getGroupid()
        {
            return groupid;
        }

        public void setGroupid(int groupid)
        {
            this.groupid = groupid;
        }

        public String getPasswd()
        {
            return passwd;
        }

        public void setPasswd(String passwd)
        {
            this.passwd = passwd;
        }

        public String getSpecialnumber()
        {
            return specialnumber;
        }

        public void setSpecialnumber(String specialnumber)
        {
            this.specialnumber = specialnumber;
        }

        public String getStateregion()
        {
            return stateregion;
        }

        public void setStateregion(String stateregion)
        {
            this.stateregion = stateregion;
        }

        public String getTelephone()
        {
            return telephone;
        }

        public void setTelephone(String telephone)
        {
            this.telephone = telephone;
        }

        public Date getUserexpiredate()
        {
            return userexpiredate;
        }

        public void setUserexpiredate(Date userexpiredate)
        {
            this.userexpiredate = userexpiredate;
        }

        public int getUserid()
        {
            return userid;
        }

        public void setUserid(int userid)
        {
            this.userid = userid;
        }

        public String getUsername()
        {
            return username;
        }

        public void setUsername(String username)
        {
            this.username = username;
        }

        public String getUserstatus()
        {
            return userstatus;
        }

        public void setUserstatus(String userstatus)
        {
            this.userstatus = userstatus;
        }
    }

    // Getter for the data list
    public ArrayList<userdata> getuserdata()
    {

        return dataList;
    }

    @PostConstruct
    public void initData() throws SQLException
    {
        //     settingsMap = new HashMap<String,String>();

        if (ds == null)
        {
            throw new SQLException("Can't get data source");
        }
        // Initialize a connection to Oracle
        Connection conn = ds.getConnection();

        if (conn == null)
        {
            throw new SQLException("Can't get database connection");
        }
        // With SQL statement get all settings and values
        PreparedStatement ps = conn.prepareStatement("SELECT * from USERS where USERID = ?");
        ps.setInt(1,id);
        try
        {
            //get data from database        
            ResultSet result = ps.executeQuery();
            while (result.next())
            {
                // Put the the data from Oracle into Array List

                dataList.add(new userdata(result.getInt("USERID"),result.getInt("GROUPID"),result.getString("SPECIALNUMBER"),result.getString("USERNAME"),result.getString("PASSWD"),toDate(result.getString("DATETOCHANGEPASSWD")),result.getString("ADDRESS"),result.getString("STATEREGION"),result.getString("COUNTRY"),result.getString("USERSTATUS"),result.getString("TELEPHONE"),toDate(result.getString("DATEUSERADDED")),toDate(result.getString("USEREXPIREDATE")),toDate(result.getString("DATEUSERLOCKED")),result.getString("CITY"),result.getString("EMAIL"),result.getString("DESCRIPTION")));

            }
        }
        finally
        {
            ps.close();
            conn.close();
        }
    }
    // Call Crypto library for password convert into SHA hash
    @Inject
    @OSGiService(dynamic = true,waitTimeout = 5)
    transient CryptoSHA SHA;

    // Convert Password String into SHA hash
    public String passwdConvert(String password) throws NoSuchAlgorithmException
    {
        return SHA.ShaEncryptHash(password);
    }

    // Insert the data into Oracle
    public void saveData() throws SQLException,java.text.ParseException,NoSuchAlgorithmException
    {

        String SqlStatement = null;

        if (ds == null)
        {
            throw new SQLException();
        }

        Connection conn = ds.getConnection();
        if (conn == null)
        {
            throw new SQLException();
        }

        PreparedStatement ps = null;

        try
        {
            conn.setAutoCommit(false);
            boolean committed = false;
            try
            {           /*
                 * insert into Oracle the default system(Linux) time
                 */


                SqlStatement = "UPDATE USERS "
                        + "SET "
                        + "USERID = ?,"
                        + "GROUPID = ?,"
                        + "SPECIALNUMBER = ?,"
                        + "USERNAME = ?,"
                        + "PASSWD = ?,"
                        + "DATETOCHANGEPASSWD = ?,"
                        + "ADDRESS = ?,"
                        + "STATEREGION = ?,"
                        + "COUNTRY = ?,"
                        + "USERSTATUS = ?,"
                        + "TELEPHONE = ?,"
                        + "DATEUSERADDED = ?,"
                        + "USEREXPIREDATE = ?,"
                        + "DATEUSERLOCKED = ?,"
                        + "CITY = ?,"
                        + "EMAIL = ?,"
                        + "DESCRIPTION = ? "
                        + "WHERE USERID = " + id;

                ps = conn.prepareStatement(SqlStatement);

                ps.setInt(1,dataList.get(userid));
                ps.setInt(2,dataList.get(groupid));
                ps.setString(3,dataList.get(specialnumber));
                ps.setString(4,dataList.get(username));
                ps.setString(5,passwdConvert(dataList.get(passwd)));
                ps.setDate(6,toDate(dataList.get(datetochangepasswd)));
                ps.setString(7,dataList.get(address));
                ps.setString(8,dataList.get(stateregion));
                ps.setString(9,dataList.get(country));
                ps.setString(10,dataList.get(userstatus));
                ps.setString(11,dataList.get(telephone));
                ps.setDate(12,toDate(dataList.get(dateuseradded)));
                ps.setDate(13,toDate(dataList.get(userexpiredate)));
                ps.setDate(14,toDate(dataList.get(dateuserlocked)));
                ps.setString(15,dataList.get(city));
                ps.setString(16,dataList.get(email));
                ps.setString(17,dataList.get(description));


                ps.executeUpdate();

                conn.commit();
                committed = true;
            }
            finally
            {
                if (!committed)
                {
                    conn.rollback();
                }
            }
        }
        finally
        {
            /*
             * Release the resources
             */
            ps.close();
            conn.close();
        }

    }
    //!!!! https://stackoverflow.com/questions/11135675/unparseable-date-30-jun-12
    // Convert the Date format

    public Date toDate(String s)
    {
        Date d = null;
        if (s == null || s.trim().isEmpty())
        {
            return d;
        }

        try
        {
            d = Date.valueOf(s);
        }
        catch (Exception x)
        {
            x.printStackTrace();
        }

        return d;
    }
}

我试图使用这个Java代码获取元素:

ps.setInt(1,dataList.get(userid));
ps.setInt(2,dataList.get(groupid));
ps.setString(3,dataList.get(specialnumber));
ps.setString(4,dataList.get(username));
ps.setString(5,passwdConvert(dataList.get(passwd)));
ps.setDate(6,toDate(dataList.get(datetochangepasswd)));
ps.setString(7,dataList.get(address));
ps.setString(8,dataList.get(stateregion));
ps.setString(9,dataList.get(country));
ps.setString(10,dataList.get(userstatus));
ps.setString(11,dataList.get(telephone));
ps.setDate(12,toDate(dataList.get(dateuseradded)));
ps.setDate(13,toDate(dataList.get(userexpiredate)));
ps.setDate(14,toDate(dataList.get(dateuserlocked)));
ps.setString(15,dataList.get(city));
ps.setString(16,dataList.get(email));
ps.setString(17,dataList.get(description));

但我在Netbeans中遇到错误.你能告诉我从ArrayList获取元素的正确方法是什么?

最好的祝愿

解决方法

使用for-each循环这是优化方式……

for(userdata obj : dataList){

   System.out.println("User ID :: " + obj.userid);
   System.out.println("Group ID :: " + obj.groupid);
   .
   .
   .

}

使用for循环

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

       userdate obj=datalist.get(i);
       System.out.println("User ID :: " + obj.userid);
       System.out.println("Group ID :: " + obj.groupid);
       .
       .
       .

    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读