❶ java中怎么遍历list集合
常用的List集合, 可以使用下面几种方式进行遍历
参考代码
importjava.util.ArrayList;
importjava.util.Iterator;
publicclassTest{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
list.add(5);
list.add(8);
list.add(9);
//方案一推荐.简洁
for(Integere:list){
System.out.print(e+",");
}
//方案二
for(inti=0;i<list.size();i++){
System.out.println(list.get(i));
}
//方案三
Iterator<Integer>it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
❷ java 遍历 类属性的属性值
用反射,代码你可以参考下面的:
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组
for(int j=0 ; j<field.length ; j++){ //遍历所有属性
String name = field[j].getName(); //获取属性的名字
System.out.println("attribute name:"+name);
String type = field[j].getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );
String value = (String) m.invoke(model); //调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Integer")){
Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );
Integer value = (Integer) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Short")){
Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );
Short value = (Short) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value); }
}
if(type.equals("class java.lang.Double")){
Method m = model.getClass().getMethod("get" + name.substring(0,1).toUpperCase() + name.substring(1) );
Double value = (Double) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.lang.Boolean")){
Method m = model.getClass().getMethod("get"+name);
Boolean value = (Boolean) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value);
}
}
if(type.equals("class java.util.Date")){
Method m = model.getClass().getMethod("get"+name);
Date value = (Date) m.invoke(model);
if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
❸ java中如何遍历实体类的属性和数据类型以及
可以通过反射获取到属性方法信息:
publicclassUser{
privateintid;
privateStringname;
privatedoubleamount;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetAmount(){
returnamount;
}
publicvoidsetAmount(doubleamount){
this.amount=amount;
}
}
获取类信息:
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
importjava.lang.reflect.Parameter;
publicclassReflectDemo{
publicstaticvoidmain(String[]args){
Classclz=User.class;
//获取所有自己定义的属性(不包含从Object继承的,如果需要可使用getFields()方法)
Field[]fields=clz.getDeclaredFields();
for(Fieldf:fields){
System.out.println("属性名称:"+f.getName()+",属性类型:"+f.getType().getName());
}
//获取所有自己定义的方法(同样不包含继承的)
Method[]methods=clz.getDeclaredMethods();
for(Methodm:methods){
System.out.println("方法名称:"+m.getName());
System.out.println("返回值类型:"+m.getReturnType().getName());
//获取方法的所有参数
Parameter[]parameters=m.getParameters();
for(Parameterp:parameters){
System.out.println("参数类型:"+p.getType().getName());
}
System.out.println("==========================================");
}
}
}
❹ JAVA实体类对象怎么遍历
//按ID查询:推荐使用HQL--Hibernate官方推荐的查询语言
public Person queryById(String id){
Person p = null;
//使用Hibernate查询语言
String hql = "FROM Person as p WHERE p.id=?" ;
//通过专Query接口属查询
Query q = this.session.createQuery(hql) ;
q.setString(0, id);
List list = q.list() ;
Iterator iter = list.iterator();
while(iter.hasNext()){
p = (Person)iter.next();
}
return p ;
}
❺ Java中怎么遍历map中value值
Java中遍历Map对象的4种方法:
1、通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容专量大时。
(5)java类遍历扩展阅读:
关于JAVA的遍历知识补充:
1、list和set集合都实现了Iterable接口,所以他们的实现类可以使用迭代器遍历,map集合未实现该接口,若要使用迭代器循环遍历,需要借助set集合。
2、使用EntrySet 遍历,效率更高。
❻ java Map 怎么遍历
关于java中遍历map具体有四种方式,请看下文详解。
1、这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用。
Map<Integer, Integer> map = newHashMap<Integer, Integer>();
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());
}
2、在for-each循环中遍历keys或values。
如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
Map<Integer, Integer> map = newHashMap<Integer, Integer>();
for(Integer key : map.keySet()) {
System.out.println("Key = "+ key);
}
for(Integer value : map.values()) {
System.out.println("Value = "+ value);
}
该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
3、使用Iterator遍历
使用泛型:
Map<Integer, Integer> map = newHashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while(entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println("Key = "+ entry.getKey() + ", Value = "+ entry.getValue());
}
不使用泛型:
Map map = newHashMap();
Iterator entries = map.entrySet().iterator();
while(entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println("Key = "+ key + ", Value = "+ value);
}
4、通过键找值遍历(效率低)
Map<Integer, Integer> map = newHashMap<Integer, Integer>();
for(Integer key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key = "+ key + ", Value = "+ value);
}
假设Map中的键值对为1=>11,2=>22,3=>33,现用方法1来遍历Map代码和调试结果如下:
(6)java类遍历扩展阅读:
1、HashMap的重要参数
HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。
加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。
在Java编程语言中,加载因子默认值为0.75,默认哈希表元为101。
2、HashMap的同步机制
注意,此实现不是同步的。 如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。
(结构上的修改是指添加或删除一个或多个映射关系的任何操作;以防止对映射进行意外的非同步访问,如下:
Map m = Collections.synchronizedMap(new HashMap(...));
❼ java中的遍历是什么意思
遍历就是把每个元素都访问一次.比如一个二叉树,遍历二叉树意思就是把二叉树中的每个元素都访问一次