How to get elements from Java ArrayList
•
Java
I have a basic question I have this 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; } }
I tried to use this java code to get the element:
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));
But I encountered an error in NetBeans Can you tell me the correct way to get elements from ArrayList?
Best wishes
Solution
Use a for each loop, which is optimized
for(userdata obj : dataList){ System.out.println("User ID :: " + obj.userid); System.out.println("Group ID :: " + obj.groupid); . . . }
Using the for loop
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); . . . }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码