1. Collection集合:
TreeSet: 以有序状态保持并可防止重复,每次都会自动的按字母顺序排序
HashMap: 可用成对的 name/value 来保存与取出
LinkedList: 针对经常插入或删除中间元素所设计的高效率集合
HashSet: 防止重复的集合,可快速的照相相符的元素
2. Collections.sort(List list) 方法,对 list 按字母排序
3. System.out.println(a) 会自动调用 a.toString() 方法
==============================================================
1. 关于泛型知道的三件事情:
a. 创建被泛型化类的实例 eg: new ArrayList<Song>()
b. 声明与指定泛型类型的变量 eg: List<Song> songList = new ArrayList<Song>()
c. 声明(与调用)取用泛型类型的方法
eg: void foo(List<Song> List)
x.foo(songList)
2. ArrayList 的说明文件
public class ArrayList<E> extends AbstractList<E> implements List<E>..
{
public boolean add(E o)
.
.
.
}
E 部分会用你所声明与创建的真正类型来取代,ArrayList 是 AbstractList 的子类,所以指定给 ArrayList 的类型会自动地用在 AbstractList 上 ,E类型也会用在 List 这个接口上。
3. 使用未定义在类声明的类型参数
public <T extends Animal> void takeThing(ArrayList<T> list)
在返回类型之前,这个方法意味着 T 可以是"任何一种 Animal" ,因此 你可以使用
ArrayList<Dog>, ArrayList<Cat> 或者 ArrayList<Animal> 来调用上面的方法
4. public static <T extends Comparable<? super T>> void sort(List<T> list)
sort() 方法只能接受 Comparable 对象的 list. 这里的 Comparable 是一个接口
5. 从泛型的观点来说,extend 代表 extend或implement。它代表"是一个...",且不管是接口或类都适用。
6. public static <T> void sort(List<T> list, Comparator<? super T> c)
java.util Interface Comparator<T> 有两个方法:
int compare(T o1, T o2)
boolean equals(Object obj)
如果传 Comparator 给 sort()方法,则排序是由Comparator而不是元素的compareTo()方法来决定
7. sort() 规则:
1. 调用单一参数的 sort(List o) 方法代表由 list 元素上的 compareTo() 方法来决定顺序。因此元素必须要实现 Comparable 这个接口。
2. 调用 sort(List 0,Comparator c) 方法代表不会调用 list 元素的 compareTo()方法,而会使用 Comparator 的 compare() 方法。这意味着 list 元素不需要实现 Comparable。
8. List:是一种知道索引位置的集合,可以有多个元素引用相同的对象。
Set: 不允许重复的集合,不会有多个元素引用相同的对象。
Map: 使用成对的键值和数据值,Map 会维护与 key 有关联的值。两个 key 可以引用相同的对象,但 key 不能重复
9. 自创的类没有覆盖equals方法,那你的类使用equals和使用==会得到同样的结果,==比较的是地址,equals比较的是值
10. HashSet 检查重复与否:hashCode() 与 equals() 相关规定:
1> 如果两个对象相等,则 hashcode 必须也是相等的。
2> 如果两个对象相等,则其中一个对象调用 equals() 必须返回 true
3> 如果两个对象有相同的哦 hashcode 值,他们也不一定相等
4> 如果 equals() 被覆盖过,hashCode() 也必须被覆盖
5> 如果你没有 override 过 hashCode(),则 class 两个对象怎样都不会被视为相同的,hashCode() 的默认行为是在 heap(堆)上对象产生独特的值
6> equals() 的默认行为是执行 == 的比较,也就是说会去测试两个引用是否对上 heap 上同一个对象。如果equals() 没有被覆盖过,两个对象永远都不会被视为相同的
11. TreeSet 在防止重复上面与 HashSet 是一样的。但它还会一直保持集合处于有序状态。如果使用 TreeSet 默认的构造函数,它工作起来就像 sort() 一样使用对象的compareTo() 方法来处理。但也可以选择传入 Comparator 给 TreeSet 的构造函数。
12. 要使用TreeSet,集合中的元素必须是:有实现 Comparable 类的 compareTo() 或 有实现 Comparator<T> 类的 compare(T t1,T t2) ;来创建 TreeSet。
======================================================================
1. 数组的类型是在运行期间检查的,但集合的类型检查只会发生在编译期间
2. ArrayList<? extends Pet> 你可以调用 list 中任何元素的方法,但不能加入元素
3. public <T extends Animal> void takeThing(ArrayList<T> list)
public void takeThing(ArrayList<? extends Animal> list) 两者效果一样
日期:2012-4-2 来源:GBin1.com
Letterpress就是凸活版印制方式,过去活字印刷就是使用了凸活版印制方式,曾经在1980年代后几乎完全离开我们的视线,其后被胶版印刷所取代,但是现在letterpress正借助原创设计和个性定制等新生活方式重新回到我们的生活。
凸活版印制方式基本工艺是凸版印刷,就是把图案制成凸起的印版,让凸起的图案蘸到彩色油墨,通过压力将图案深深地压进纸张表面,形成颜色漂亮,印痕清晰的图案。常见的印刷纸品大部分是胶版印刷,没有压痕。
今天我们收集了25个超酷的凸活版印制方式的名片设计,如果你想看看retro方式以外 的名片设计的话,这是个不错的设计欣赏。如果你需要设计一款有型有款的个人名片的话,今天的名片分享肯定会给你带来超棒的设计灵感。希望大家能够喜欢!如果你喜欢,请给我们留言!
Jacob ward letterpress business cardsCretive Four Friends Letterpress Business Cards
Twitter Treat Winning Letterpress Business Cards
原文来自:设计, 名片设计, Letterprint, namecard
点击图片的震动效果