java 中List转为Map

 表结构:TmDictionary

CREATE TABLE ts_data_dic
(
  id serial NOT NULL,
  value_name character varying(30) NOT NULL, -- 值所对应的描述
  value_code character varying(20), -- 所对应的代码值
  type_code character varying(20),
  type_name character varying(30),
  comments character varying(20),
  create_by integer,
  create_date timestamp without time zone,
  last_update_by integer,
  last_update_date timestamp without time zone,
  row_version numeric(14,0) NOT NULL DEFAULT 0,
  isvalid numeric(1,0) NOT NULL DEFAULT 1,
  parent_id integer,
  editable integer NOT NULL DEFAULT 1,
  sort integer,
  CONSTRAINT pk_ts_data_dic PRIMARY KEY (id ),
  CONSTRAINT fk_ts_data_dic FOREIGN KEY (parent_id)
      REFERENCES ts_data_dic (id) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT
)


实现根据传入的typeCode返回一个Map<valueCode,TmDictionary>

  public Map<String, TmDictionary> findByTypeCode(String typeCode){
    	String hql="select distinct tm from TmDictionary tm left join tm.parent parent where  tm.isValid=:isValid and tm.typeCode=:code";
    	Map<String,Object> params = new HashMap<String, Object>();
    	params.put("isValid", 1);
    	params.put("code", typeCode);
		List<TmDictionary> list=(List<TmDictionary>) dictionaryDao.query(hql, params);
        Map<String,TmDictionary> map=new HashMap<String, TmDictionary>();
        for(TmDictionary  dic:list){
        	if(dic==null){
        		continue;
        	}
        	map.put(dic.getValueCode(), dic);
        }
        return map;
    }


测试代码:

@Test
	public void findByTypeCode(){
		Map<String, TmDictionary> map= ditionaryService.findByTypeCode("lockedname");
		for(Entry<String, TmDictionary> entry:map.entrySet()){
			System.out.println(entry.getKey()+":"+entry.getValue());
		}
		
	}

原文链接:

List:

 

学号
姓名
班级
1
songjl1
01级1班
2
songjl2
02级1班
3
songjl3
03级1班
转换为Map

List<Student> list = new ArrayList<Student>();
  Map<Integer, Student> map = new HashMap<Integer, Student>();
  for(Student stu : list){
   if(stu==null){
    continue;
   }
   //Student为javabean对象.保存的数据学号,姓名,班级
   //以学号作为key.
   map.put(stu.getStuNo(), stu);
  }



 

### Java中将Map换为ListJava中,可以通过遍历`Map`中的每一个条目(entry),并将其键或值添加到列表中来实现`Map`到`List`的换。如果目标是创建一个由自定义对象组成的列表,则可以在遍历时构建这些对象并将它们加入列表。 对于给定的例子,在Java中将`Map<String, Integer>`换成`List<Person>`的过程如下所示[^1]: ```java import java.util.*; class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } } public class MapToListExample { public static void main(String[] args) { // 创建一个HashMap实例 Map<String, Integer> map = new HashMap<>(); map.put("Alice", 18); map.put("Bob", 21); map.put("Charlie", 25); // 将map转为person list List<Person> personList = new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { personList.add(new Person(entry.getKey(), entry.getValue())); } System.out.println(personList.toString()); } } ``` 这段代码展示了如何通过迭代`Map`的所有入口,并利用每个入口的信息初始化一个新的`Person`对象,最后把这些新创建的对象收集到一个`ArrayList`里。此方法适用于任何想要基于`Map`的内容生成特定类型的集合的情况。 除了上述方式外,还可以采用流操作简化这一过程,特别是当使用的是Java 8及以上版本时。下面是一个更简洁的做法,它同样实现了相同的功能但是更加优雅[^4]: ```java // 使用Stream API进行List<Person> personListStream = map.entrySet().stream() .map(e -> new Person(e.getKey(), e.getValue())) .collect(Collectors.toList()); System.out.println(personListStream.toString()); ``` 这种方法不仅减少了样板代码的数量,而且提高了可读性和维护性。此外,由于内部采用了优化过的算法,性能上也可能有所提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值