java中如何通过一个已知的属性值获取到所属的对象,从而得到该对象的其余属性值

Julydemo 2014-04-23 03:18:37
java中如何通过一个已知的属性值获取到所属的对象,从而得到该对象的其余属性值
比如说 现在有个一个类 A 有个两个属性值 id name 现在 现在给他的两个属性赋值
a.setId(1);
a.setName("a");
a.setId(2
a.setName("b");
a.setId(3)
a.setName("c");

然后我现在想 给出一个 name 为C 然后得到它对应的id 请问该怎么做啊?
...全文
3387 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Julydemo 2014-04-24
  • 打赏
  • 举报
回复
引用 7 楼 wlwlwlwl015 的回复:
[quote=引用 6 楼 u014601583 的回复:] [quote=引用 5 楼 wlwlwlwl015 的回复:] [quote=引用 4 楼 u014601583 的回复:] [quote=引用 1 楼 wlwlwlwl015 的回复:] 那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。
实际中我是这样做的 List list=new ArrayList(); ... while (rs.next()){ A a=new A(); a.setId(rs.getInt("id")); a.setName(rs.getString("name")); list.add(a); } 所以 a有很多不同的属性值 现在我想根据一个已知的 属性值 得到与它对应的另一个属性值。我知道遍历是一种方法但是 这个list的size有好几万呢 要是每次都遍历 那是不是很麻烦啊 有没有什么方便的方法啊[/quote] List直接查找集合对象只能通过索引,你如果根据1个属性好像没什么好办法了。只能遍历通过get方法判断。List本身就是有序的所以你那个对象的位置是固定的。不过你一个List放几万条数据感觉是设计有些问题吧。 [/quote] 我也觉得不太靠谱,可是应该怎么放呢?[/quote] 根据业务,用多少查多少,你一次查几万条放内存,用不了这么多吧。[/quote] 我是在应用启动时 一次性将用到的数据放在内存中 之后就不在进行数据库访问了。我再问一个问题 java反射可以吗,我没弄明白反射这个东西。我总觉得 我知道了对象的某个属性值(都是唯一的)以后 理论上是可以逆推找到这个对象然后得到它的其他属性的值的啊
小灯光环 版主 2014-04-24
  • 打赏
  • 举报
回复
引用 6 楼 u014601583 的回复:
[quote=引用 5 楼 wlwlwlwl015 的回复:] [quote=引用 4 楼 u014601583 的回复:] [quote=引用 1 楼 wlwlwlwl015 的回复:] 那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。
实际中我是这样做的 List list=new ArrayList(); ... while (rs.next()){ A a=new A(); a.setId(rs.getInt("id")); a.setName(rs.getString("name")); list.add(a); } 所以 a有很多不同的属性值 现在我想根据一个已知的 属性值 得到与它对应的另一个属性值。我知道遍历是一种方法但是 这个list的size有好几万呢 要是每次都遍历 那是不是很麻烦啊 有没有什么方便的方法啊[/quote] List直接查找集合对象只能通过索引,你如果根据1个属性好像没什么好办法了。只能遍历通过get方法判断。List本身就是有序的所以你那个对象的位置是固定的。不过你一个List放几万条数据感觉是设计有些问题吧。 [/quote] 我也觉得不太靠谱,可是应该怎么放呢?[/quote] 根据业务,用多少查多少,你一次查几万条放内存,用不了这么多吧。
Julydemo 2014-04-24
  • 打赏
  • 举报
回复
引用 5 楼 wlwlwlwl015 的回复:
[quote=引用 4 楼 u014601583 的回复:] [quote=引用 1 楼 wlwlwlwl015 的回复:] 那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。
实际中我是这样做的 List list=new ArrayList(); ... while (rs.next()){ A a=new A(); a.setId(rs.getInt("id")); a.setName(rs.getString("name")); list.add(a); } 所以 a有很多不同的属性值 现在我想根据一个已知的 属性值 得到与它对应的另一个属性值。我知道遍历是一种方法但是 这个list的size有好几万呢 要是每次都遍历 那是不是很麻烦啊 有没有什么方便的方法啊[/quote] List直接查找集合对象只能通过索引,你如果根据1个属性好像没什么好办法了。只能遍历通过get方法判断。List本身就是有序的所以你那个对象的位置是固定的。不过你一个List放几万条数据感觉是设计有些问题吧。 [/quote] 我也觉得不太靠谱,可是应该怎么放呢?
小灯光环 版主 2014-04-24
  • 打赏
  • 举报
回复
引用 4 楼 u014601583 的回复:
[quote=引用 1 楼 wlwlwlwl015 的回复:] 那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。
实际中我是这样做的 List list=new ArrayList(); ... while (rs.next()){ A a=new A(); a.setId(rs.getInt("id")); a.setName(rs.getString("name")); list.add(a); } 所以 a有很多不同的属性值 现在我想根据一个已知的 属性值 得到与它对应的另一个属性值。我知道遍历是一种方法但是 这个list的size有好几万呢 要是每次都遍历 那是不是很麻烦啊 有没有什么方便的方法啊[/quote] List直接查找集合对象只能通过索引,你如果根据1个属性好像没什么好办法了。只能遍历通过get方法判断。List本身就是有序的所以你那个对象的位置是固定的。不过你一个List放几万条数据感觉是设计有些问题吧。
Julydemo 2014-04-24
  • 打赏
  • 举报
回复
引用 1 楼 wlwlwlwl015 的回复:
那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。
实际中我是这样做的 List list=new ArrayList(); ... while (rs.next()){ A a=new A(); a.setId(rs.getInt("id")); a.setName(rs.getString("name")); list.add(a); } 所以 a有很多不同的属性值 现在我想根据一个已知的 属性值 得到与它对应的另一个属性值。我知道遍历是一种方法但是 这个list的size有好几万呢 要是每次都遍历 那是不是很麻烦啊 有没有什么方便的方法啊
as84633270 2014-04-23
  • 打赏
  • 举报
回复
感觉楼主是初学者,上面的写法错了,不过如果想要根据一个值来获取其余属性的话,可以把已知的值遍历一遍,然后逐个判断该属性的值,最后取出来
小灯光环 版主 2014-04-23
  • 打赏
  • 举报
回复
不能给同一个对象的相同的属性去设置多个不同的值。
小灯光环 版主 2014-04-23
  • 打赏
  • 举报
回复
那要看你的对象存在哪里,而且你的写法不对,不能给相同的属性去设置多个不同的值。 如果你直接new一个A,并且给对象设置了get/set方法。那么你直接调用就可以取到,因为对象是存在内存中的。

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧