有序列表,允许存放重复的元素;
List
有序列表,允许存放重复的元素;
1.ArrayList
ArrayList是List的子类,允许存放重复元素,因此有序。
使用范例:
public class test1 {
List<Integer> highs = new ArrayList<>();
List<Integer> wighs = new ArrayList<>();
public void getLadies() {
Scanner key = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入身高:");
int h = key.nextInt();
highs.add(h);
System.out.println("请输入体重:");
int w = key.nextInt();
wighs.add(w);
}
Set
无序集合,不允许存放重复的元素
1.HashSet
无序,不能重复
使用范例:
public class Demo3 {
public static void main(String[] args) {
Person person = new Person("zhangsan",41);
Person person1 = new Person("zhangsan",41);
HashSet<Person> set = new HashSet<>();
set.add(person);
set.add(person1);
for (Person person2 : set) {
System.out.println(person2);
}
}
}
2.TreeSet
有序,不能重复
使用范例:
public class Work5 {
//程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
public static void main(String[] args) {
System.out.println("输入多个整数:");
Scanner key = new Scanner(System.in);
Set<Integer> set = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 == o1 ? -1 : o1 - o2;
}
});
while (true) {
String s = key.nextLine();
if ("quit".equals(s)) {
break;
}
Integer i = Integer.parseInt(s);
set.add(i);
}
for (Integer integer : set) {
System.out.println(integer);
}
}
}
Map
Map用于保存具有映射关系的数据,Map里保存着两组数据:key和value,它们都可以使任何引用类型的数据,但key不能重复。所以通过指定的key就可以取出对应的value。
1.HashMap
使用key-value来映射和存储数据,Key必须惟一,value可以重复
使用范例:
public class test1 {
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.println("请输入字符串");
String s = key.nextLine();
findChar(s);
}
private static void findChar(String s) {
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
/*
map里面并没有数据c,没有匹配值表示c为首次加入,次数+1,之后匹配到构造参数j=get(得到c的V值)
*/
if (!map.containsKey(c)) {
map.put(c, 1);
} else {
int j = map.get(c);
map.put(c, ++j);
}
}
System.out.println(map);
}
}