Java 如何遍历数组里面的数据

Java 如何遍历数组里面的数据,第1张

for循环就可以了

public static void main(String[] args) {

String[] temp = {"aa","bb","cc"};

for(int i=0;i<templength;i++){

Systemoutprintln(temp[i]);

}

}

首先web程序,每天访问量巨大!

页面本身已经有一个数据库查询,我打算在此次数据库查询里把我需要的另一种信息查出来,而不是多一次数据库查询,这样的代价就是循环遍历结果集的时候,循环次数多了(预计最多多了100以内)。

想问下,两种方案哪个从性能方面来说更 *** 蛋?

1,一次数据库查询查出所有,代价是多了几次循环。

2,分开两次数据库查询。

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

//stmtexecuteUpdate("create table People(name varchar(255),A int,B int)");

//stmtexecuteUpdate("insert into People values('张三',1,0)");

//stmtexecuteUpdate("insert into People values('李四',2,1)");

//stmtexecuteUpdate("insert into People values('王五',3,1)");

//stmtexecuteUpdate("insert into People values('赵云',4,2)");

//stmtexecuteUpdate("insert into People values('张飞',5,3)");

public class Test {

private static void query(Connection conn,String sql,int a) {

PreparedStatement stmt = null;

ResultSet rs = null;

try {

stmt = connprepareStatement(sql);

stmtsetInt(1, a);

rs = stmtexecuteQuery();

while (rsnext()) {

Systemoutprintln(rsgetString("name")+":"+rsgetInt("A"));

query(conn,sql,rsgetInt("A"));

}

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (rs != null) {

try {

rsclose();

rs=null;

Systemoutprintln(a+":rs closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

if (stmt != null) {

try {

stmtclose();

stmt=null;

Systemoutprintln(a+":stmt closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

Systemoutprintln("===============================");

}

public static void main(String[] args) {

Connection conn = null;

try {

conn = DriverManagergetConnection("jdbc:derby:E:/Derby/test");

String sql="select from people where B=";

query(conn,sql, 1);

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (conn != null) {

try {

connclose();

Systemoutprintln("Connection关闭。");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

}

}

第一个问题: 这个是创建一个类型为buyEntity的集合 对吗

不是, 创建了一个size为0的ArrayList集合 集合内放的对象是BuyEntity类型的

第二个问题: 为什么每次循环都需要创建一个对象呢

因为从数据库查询到的数据可能有很多条 第一个buyEntity对象一条数据, 每读取完一条数据, 将它保存在ArrayList集合中

第三个问题: 这步作用

利用foreach方式遍历, c被定义object, object是所有类的超类, 在foreach的过程中 result的数据被向上转型为父类 所以利用buyentity来接收c, 需要强制向下转型 例如: 人是动物, 是向上转型, 动物不一定是人, 只能强制转型 但这个东西如果只是一个动物但不是人, 被强制转型为人, 则会抛出异常

在foreach中可以写成for(buyEntity c:result)这样 这样就不用转型了

写个实体类,重写equals方法。

package com;

import javautilArrayList;

import javautilList;

public class Zhuq {

/1 小红 123

2 小明 456

3 小强 123 /

public static void main(String[] args) {

List<Student> list = new ArrayList<>();

listadd(new Student("小红", "1", "123"));

listadd(new Student("小明", "2", "456"));

listadd(new Student("小强", "3", "123"));

for(Student bean :list){

if(listcontains(bean)){

Systemoutprintln(bean);

}

}

}

}

package com;

public class Student {

private String name;

private String Id;

private String pwe;

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

public String getId() {

return Id;

}

public void setId(String id) {

Id = id;

}

public String getPwe() {

return pwe;

}

public void setPwe(String pwe) {

thispwe = pwe;

}

@Override

public boolean equals(Object obj) {

if(obj instanceof Student){

if(((Student)obj)getPwe()equals( thispwe) && !((Student)obj)getId()equals( thisId)){

return true;

}

}

return false;

}

@Override

public String toString() {

return "Student [name=" + name + ", Id=" + Id + ", pwe=" + pwe + "]";

}

public Student(String name, String id, String pwe) {

super();

thisname = name;

Id = id;

thispwe = pwe;

}

public Student() {

super();

}

}

如果你的数据量非常大,肯定会内存溢出

你不停的Element dom是把xml加载到内存中的,数据量一多内存就不够了,性能低下

建议你分页查询

然后通过Xstream等xml框架去生成xml

以上就是关于Java 如何遍历数组里面的数据全部的内容,包括:Java 如何遍历数组里面的数据、Java程序,多一次数据库查询,与循环相比,哪个性能更差、java如何循环查数据库同一张表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9774758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存