LinkedList特有方法
对首尾元素的增删改查
package TempAndTest;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class test1 {
public static void main(String[] args){
LinkedList<String> l1=new LinkedList<String>();
l1.add("a"); l1.add("b");l1.add("c");
System.out.println(l1);
l1.addFirst("开头加入");
l1.addLast("末尾加入");
System.out.println(l1);
System.out.println("获得末尾"+l1.getLast());
System.out.println("获得开头"+l1.getFirst());
System.out.println(l1);
System.out.println("删除末尾"+l1.removeLast());
System.out.println("删除开头"+l1.removeFirst());
System.out.println(l1);
}
}
set集合,HashSet
记住,set和list,还有collection都是接口,他们是没有构造的!
但是可以根据多态来实例化
set集合不存储相同数据,set集合存储顺序无法保持,hashset不能使用普通for遍历
怎么实现不存储相同数据?通过比较哈希值来实现不存储相同的数据
相同字符串具有相同的HashCode,如果HashCode相同,再比较字符串是否相同
package TempAndTest;
import java.util.*;
public class test1 {
public static void main(String[] args) {
Set<String> s1=new HashSet<String>();
s1.add("2");s1.add("3");s1.add("1");
s1.add("1");
// 迭代器遍历
Iterator t=s1.iterator();
while (t.hasNext())
{
System.out.print(t.next()+" ");
}
System.out.println();
// 增强for循环遍历
for (String s:s1)
{
System.out.print(s+" ");
}
}
}
哈希值HashCode
默认情况下,使用object中的hashCode()方法
不可能出现相同的hashcode
除非重写了hashCode方法
比如String类重写了hashcode方法
package TempAndTest;
import java.util.*;
public class test1 {
public static void main(String[] args) {
// 不同对象的hashcode是不同的
test t1=new test();
test t2=new test();
System.out.println(t1.hashCode());
System.out.println(t2.hashCode());
// 固定字符串其实也是对象
System.out.println("嗨嗨嗨".hashCode());
System.out.println("嗨嗨嗨".hashCode());
System.out.println("我们也不一样".hashCode());
// String类重写了hashCode方法
}
}
class test
{
int a;
}
LinkedHashSet集合
相比于HashSet集合保证了存取顺序
public class test1 {
public static void main(String[] args) {
LinkedHashSet<String>s=new LinkedHashSet<>();
s.add("aa");s.add("bb");s.add("ac");s.add("1.我是有序的");
System.out.println(s);
}
}
TreeSet集合
特点是按照一定顺序排列,排列方式取决于所使用构造方法,取决于所使用的比较器
默认是自然排序,A~Z排序
public class test1 {
public static void main(String[] args) {
// 自然排序
Set<String> s=new TreeSet<String>();
s.add("c");s.add("A");s.add("B");
System.out.println(s);
}
}