一.自定义一个Student类 package date0504; public class Student { private String id; Student(String id){ this.id=id; } public String getId() { return id; } public void setId(String id) { this.id = id; } } 二.使用HashSet中的add()方法将上述对象存入 HashSet hashset = new Hash…
最近公司项目选用GreenDao作为Android客户端本地数据库的对象关系映射框架.对于GreenDao虽然以往也有简单用过,但这还是笔者第一次在实际业务中使用.碰到了题目所述的两个问题,虽然在Tutorial里和百度没找到答案,但在官方issue里搜了一圈果然有方案,遂记录下来帮助更多人. 综合主键 需求场景:某张表里需要两个或多个column组合在一起成为一个综合主键.比如你的表里需要存储一个用户的账单,虽然账单也有id,但是你希望一张表存储所有用户,那么就需要把userId和账单id放在…
HashSet集合存储自定义类型元素 HashSet存储自定义类型元素 set集合报错元素唯一: ~存储的元素(String,Integer,-Student,Person-)必须重写hashCode方法和equals方法 要求:同名同年龄的人,视为同一个人,只能存储一次 public static void main(String[] args) { //创建HashSet集合存储Person HashSet<Person> set = new HashSet<>(); Pers…
HashMap存储自定义类型键值 1.当给HashMap中存放自定义对象时,如果自定义对象是键存在,保证键唯一,必须复写对象的hashCode和equals方法. 2.如果要保证map中存放的key和取出的顺序一致,可使用LinkedHashMap集合来存放 public class Person { private String name; private int age; public Person(String name, int age) { super(); //有参构造 this.n…
OC中如果要将自定义类型的对象保存到文件中,必须进行以下三个条件: 想要把存放自定义类型的数组进行 持久化(就是将内存中的临时数据以文件<数据库等>的形式写到磁盘上)必须满足: 1. 自定义对象必须要序列化(将数据有序的存放) 2. 需要使用归档来进行持久化 3. 如果要加载持久化文件需要进行反序列化(就是将有序存放的数据读取并变成自定义对象) 第一要将自定义类型序列化以及第三步并将文件反序列化必须实现OC中的  <NSCoding>协议. 以Student类为例 @interfa…
NSUserDefaults常常用来本地存储一些简单的数据,例如用户信息等等,NSUserDefaults支持floats.doubles.integers.Booleans.URLs.NSData. NSString.NSNumber.NSDate. NSArray. NSDictionary,除此之外,要想存储其它类型数据,需要先转成NSData再存储. 首先在自定义的实体对象里继承NSCoding协议,再实现encodeWithCoder.initWithCoder方法即可 存取时通过NS…
最近在看书,看到了对象在内存中的存储方式. 讲到了对象存储在内存堆中,分配的空间除了类型对象的成员所需的内存量,还有额外的成员(类型对象指针. 同步块索引 ),看到这个我就有点不懂了,不知道类型对象指针是什么,指向的什么? 从网上找也没有找到,最后往下看,书中有些描述.说下我的理解: 类型对象指针:指向类型对象存储的地址,假如有一个类型Person,它在堆中有一块区域存储它内部的字段和成员以及两个额外成员(类型对象指针. 同步块索引 ),类型对象的类型对象指针指向的是System.Type的地址…
方法的使用,请看本天师的代码 //Golang的方法定义 //Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,不仅仅是struct //定义:func (recevier type) methodName(参数列表)(返回值列表){} //方法和函数的区别 /* 1,函数调用:function(variable,参数列表) 2, 方法,variable.function(参数列表) 方法的控制,通过大小写空格控制 */ .... package main //Gola…
package main import "fmt" type user struct { name string age int sex string } type admin struct { person user level string } func main() { u := user{name: "zhangsan", age: 12, sex: "女"} u.userReciver("里默默") //Go在代码背…
自定义类型做key值.必须要重写hashCode和equals方法 创建pserson类 有name个age两个成员变量.重写toString方法 key有重复,会被新的value值替换掉. key值北京是重复的 赵六替换掉了张三,因为Sting重写了HashCode方法,可以保证我们的key值不允许重复. key使用Person自定义类型 没有重写,并不能保证唯一 next---next---finish 重写完之后.…
由于app开发的需求,需要从api接口获得json格式数据并保存临时的 app的主题颜色 和 相关url 方案有很多种: 1, 通过AppDelegate保存为全局变量,再获取 2,使用NSUSerDefault 第一种 :通过AppDelegate方法: 定义全局变量 // // AppDelegate.h // // Created by MISSAJJ on 15/5/5. // Copyright (c) 2015年 MISSAJJ. All rights reserved. // #i…
想存储的元素不重复,就必须重写hashCode和equals这两个方法 新建一个Person类.添加姓名和年龄这两个成员变量..get和set,有参和无参构造. 重点是重写了toString的方法 自己定义的类没有重写hashCode和euqals方法 输出p1和p2的hashCode 比较p1和p2默认比较的是两个地址值 p1.equals也不等于p2 重写方法 Alt+Insert:next---next--finish 自动生成的代码 添加完成之后.再运行刚才的程序.哈希值变的一样了.这两…
  案例 package cn.itcast_02; import java.util.HashSet; /* * 需求:存储自定义对象,并保证元素的唯一性 * 要求:如果两个对象的成员变量值都相同,则为同一个元素. * * 目前是不符合我的要求的:因为我们知道HashSet底层依赖的是hashCode()和equals()方法. * 而这两个方法我们在学生类中没有重写,所以,默认使用的是Object类. * 这个时候,他们的哈希值是不会一样的,根本就不会继续判断,执行了添加操作. */ pub…
1. HashSet存储自定义对象并遍历 2. 代码示例: (1)Student类,如下: package cn.itcast_02; /** * @author Administrator * */ public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name…
HashSet如何保证元素唯一性的原理 1.HashSet原理 a. 我们使用Set集合都是需要去掉重复元素的, 如果在存储的时候逐个equals()比较, 效率较低,哈希算法提高了去重复的效率, 降低了使用equals()方法的次数 b. 当HashSet调用add()方法存储对象的时候, 先调用对象的hashCode()方法得到一个哈希值, 然后在集合中查找是否有哈希值相同的对象 c. 如果没有哈希值相同的对象就直接存入集合 d.如果有哈希值相同的对象, 就和哈希值相同的对象逐个进行equa…
原文:在配置文件(.settings..config)中存储自定义对象 引言 我前面曾写过一篇<使用配置文件(.settings..config)存储应用程序配置>,我在其中指出“settings无法实现对一些复杂类型及自定义类型的支持”. 而今天我发现其实它是支持自定义类型的,仅仅是不能支持本项目中的自定义类型,可以支持引用的项目或类库的自定义类型.至于为什么不支持本项目中的自定义类型,我也不得而知,猜想可能是怕加载时造成冲突吧. 范例 我们来做一个使用自定义类型的配置文件范例. 首先新建一…
Javascript是基于原型实现面向对象的,因此并没有类和接口,它的对象也与其他基于类的语言中的对象有所不同.在Javascript中,每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型,也可以是自定义的类型.在没有类的情况下,可以采用下列模式创建对象. 简单模式 创建对象最简单的方式就是创建一个引用类型的实例,再为其添加属性和方法: var Person = new Object(); Person.name = "Thom"; Person.action = func…
摘要: 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有的的值类型集合. 标准类型,比如:QSize.QColor和QString都可以被存储到QVariant对象中,在基于QObject的类中可用作属性的类型,并且可以在信号-槽通信时发射. 下面,我会创建一个自定义类型,并且说明如何将它集成到Qt的对象模型 简述 当使用Qt创建用户界面时,特别是那些带有特殊控制和特征的界面时,开发者通常需要创建新数据类型来扩展或替换Qt现有…
今天在进行代码测试时发现,尝试在一个方法中定义一个委托,注意是定义一个委托,而不是声明一个委托变量,在编写的时候没有报错,VS也能智能提示,但在编译时却报语法不完整,缺少方括号,但实际查询并没有缺少,想不通原因,将委托定义移到类中,报错消失,编译成功了. 先看一下报错的源码:(实际上不只委托类型,所有的自定义类型均报错) class Class2 { public void Test() { delegate void testDel(string p); //是错误的 event testDe…
关于map的定义: template < class Key, class T, class Compare = less<Key>, class Allocator = allocator<pair<const Key,T> > > class map; 第一个template参数被当做元素的key,第二个template参数被当作元素的value.Map的元素型别Key和T,必须满足以下两个条件:1.key/value必须具备assignable(可赋值…
上一篇http://blog.csdn.net/qq_32059827/article/details/51578158 写到存储字符串类型的时候出现了无序,而且这个无序不是随机那种无序,它是有一定存储规律的.上次存储的是字符串,那么这里看看存储自定义对象是不是也是同样的规律.其实这里有着很多的问题需要讨论. 存储自定义对象,代码写了出来: import java.util.HashSet; public class HashSetDemo2 { public static void main(…
1. HashSet集合存储自定义对象并遍历.如果对象的成员变量值相同即为同一个对象 注意了: 你使用的是HashSet集合,这个集合的底层是哈希表结构. 而哈希表结构底层依赖:hashCode()和equals()方法. 如果你认为对象的成员变量值相同即为同一个对象的话,你就应该重写这两个方法. 如何重写呢?不同担心,自动生成即可. 2. 代码示例: (1)Dog.java: package cn.itcast_03; public class Dog { private String nam…
问题: package day30_HashSet; import java.util.HashSet; /* * 通过hashset存储自定义对象,没有进行去重. * * */ public class HashSetSutdentDemo { public static void main(String[] args) { //创建集合对象 HashSet<Student> hs = new HashSet<Student>(); //创建元素对象 Student st = n…
1 package cn.itcast.p4.hashset.test; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 6 import cn.itcast.p.bean.Person; 7 /* 8 * 往hashSet集合中存储Person对象.如果姓名和年龄相同,视为同一个人.视为相同元素. 9 */ 10 public class HashSetTest { 11 12 public static void ma…
在提取局部表结构数据时,通过Select选取需要的字段,如下句,此时其实产生了一个不用于_menuMan的原新数据类型new { c.SYS_COMMANDS_ID,c.TXT_COMMANDTITLE },这样的类型就叫匿名类型 var comdList = _menuMan.Load(c => c.FATHER_ID == null).OrderBy(c=>c.VAL_DISPLAYORDERID).Select(c=>new { c.SYS_COMMANDS_ID,c.TXT_CO…
自定义类型转换器使用场景: jsp 代码:  <!-- 特殊情况之:类型转换问题 --> <a href="account/deleteAccount?date=2018-01-01">根据日期删除账户</a> 控制器代码:  @RequestMapping("/deleteAccount") public String deleteAccount(String  date) { System.out.println("…
摘要: NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密码,网址等,NSUserDefaults肯定是首选,但是如果我们自定义了一个对象,对象保存的是一些信息,这时候就不能直接存储到NSUserDefaults了 一.了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数…
需求:ArrayList存储自定义对象并遍历.要求加入泛型,并用增强for遍历. A:迭代器 B:普通for     C:增强for LinkedList,Vector,Colleciton,List等存储继续练习 增强for是用来替迭代器. package cn_JDK5new; import java.util.ArrayList; import java.util.Iterator; public class ArrListDemo2 { public static void main(S…
一.了解NSUserDefaults以及它可以直接存储的类型 NSUserDefaults是一个单例,在整个程序中只有一个实例对象,他可以用于数据的永久保存,而且简单实用,这是它可以让数据自由传递的一个前提,也是大家喜欢用它保存简单数据的一个主要原因. 使用 NSUserDefaults 存储自定义对象的最初,我们必须认识NSUserDefaults可以存储哪一些类型的数据,下面一一列出: NSUserDefaults支持的数据类型有:NSNumber(NSInteger.float.doubl…
场景是这样的: 现在有一个数组如下,数组中存放着自定义的对象GoodscCategory <__NSArrayM 0x7ffb9c2032b0>( <GoodscCategory: 0x7ffb9c2079f0>, <GoodscCategory: 0x7ffb9c2229e0>, <GoodscCategory: 0x7ffb9c2217a0>, <GoodscCategory: 0x7ffb9c222c30>, <GoodscCateg…