1Collection 的遍历
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
Object[] objs = c.toArray();
for(int x=0;x<objs.length;x++) {
String s =(String)objs[x];
//Object没有length()方法,我们要想用字符串的方法,就必须向下转型
System.out.println(s+" "+s.length());
}
}
}
2对于学生类Collection的遍历
//学生类自己创
Collection c = new ArrayList();
student s1 = new student(12,"李康");
student s2 = new student(12,"李晓霞");
student s3 = new student(12,"李达" );
student s4 = new student(12,"李笑" );
student s5 = new student(12,"和英文" );
c.add(s1);
c.add(s2);
c.add(s3);
c.add(s4);
c.add(s5);
Object[] objs = c.toArray();
for (int i = 0; i < objs.length; i++) {
student s = (student)objs[i];
System.out.println(s.getAge()+s.getName());
}
}
}
public static void main(String[] args) {
Collection c = new ArrayList();
student s1 = new student(12,"李康");
student s2 = new student(12,"李晓霞");
student s3 = new student(12,"李达" );
student s4 = new student(12,"李笑" );
student s5 = new student(12,"和英文" );
c.add(s1);
c.add(s2);
c.add(s3);
c.add(s4);
c.add(s5);
Iterator it = c.iterator();
while(it.hasNext()) {
student s = (student)it.next();
System.out.println(s.getAge()+s.getName());
}
}
}
}
list 的学生案例:
public static void main(String[] args) {
List list = new ArrayList();
student s1 = new student(12,"李康");
student s2 = new student(12,"李晓霞");
student s3 = new student(12,"李达" );
student s4 = new student(12,"李笑" );
student s5 = new student(12,"和英文" );
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
Iterator it = list.iterator();
/*while(it.hasNext()) {
student s = (student)it.next();
System.out.println(s.getAge()+s.getName());
for(int x=0; x<list.size(); x++) {
student s =(student) list.get(x);
System.out.println(s.getAge()+s.getName());
*/
}
}
public static void main(String[] args) {
List<student> list = new ArrayList<student>();
student s1 = new student(12,"李康");
student s2 = new student(12,"李晓霞");
student s3 = new student(12,"李达" );
student s4 = new student(12,"李笑" );
student s5 = new student(12,"和英文" );
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
for(student s:list) {
System.out.println(s.getName()+s.getAge());
}
}
}
对于ArrayList内的字符串重复获得单一:
public static void main(String[] args) {
ArrayList list =new ArrayList();
list.add("java");
list.add("hehe");
list.add("java");
list.add("hehe");
//方法1
/*ArrayList newlist =new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()) {
String s = (String)it.next();
if(!newlist.contains(s)) {
newlist.add(s);
}else {
}
}
*///方法2
for (int x = 0; x <list.size()-1; x++) {
for(int y=x+1;y<list.size();y++)
if(list.get(x).equals(list.get(y))) {
list.remove(y);
y--;
}
}
for(int x=0;x<newlist.size();x++) {
String sc = (String)newlist.get(x);
System.out.println(sc);
/*for(String s:newlist) {
System.out.println(s);
*/}
}
}
}
要是在学生的去除中,要在学生类中加入equals方法,要不然比较地址值,则无法比较。
大集合学生类:
public static void main(String[] args) {
ArrayList<ArrayList<student>> bigArrayList =new ArrayList<ArrayList<student>>();
ArrayList<student> firstArrayList = new ArrayList<student>();
student s1 =new student(18,"唐三");
firstArrayList.add(s1);
ArrayList<student> secondArrayList = new ArrayList<student>();
student ss1=new student(20, "小艾");
secondArrayList.add(ss1);
ArrayList<student> thirdArrayList=new ArrayList<student>();
student sss1=new student(22, "李明");
thirdArrayList.add(sss1);
bigArrayList.add(firstArrayList);
bigArrayList.add(secondArrayList);
bigArrayList.add(thirdArrayList);
for(ArrayList<student>array :bigArrayList) {
for(student s :array) {
System.out.println(s.getAge()+" "+s.getName());
}
}
}
}
产生10个1~20的随机数
public static void main(String[] args) {
Random r = new Random();
ArrayList<Integer>array = new ArrayList<Integer>();
int count =0;
while(count<10) {
int number = r.nextInt(20)+1;
if (!array.contains(number)) {
array.add(number);
count++;
}
}
/*HashSet<Integer>array = new HashSet<Integer>();
while(array.size()<10) {
int number = r.nextInt(20)+1;
array.add(number);
}
for(Integer s:array) {
System.out.println(s);
*/for(Integer s:array) {
System.out.println(s);
}
}
}
方法二:使用集合的toArray()方法`去是集合转化为
List<String> list = new ArrayList<>();
list.add("hello");
list.add("hi");
list.add("nihao");
String[] array = list.toArray(new String[0]);
**
C:键盘录入多个数据,以0结束,并在控制台输出最大值**:
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
ArrayList<Integer> array = new ArrayList<Integer>();
while(true) {
System.out.println("请输入数据");
int number =sc.nextInt();
if(number!=0) {
array.add(number);
}else {
break;}
}
Integer[] arr=array.toArray(new Integer[array.size()]);
Arrays.sort(arr);
System.out.println("数组"+arraytoString(arr)+"最大值"+arr[arr.length-1]);
}
public static String arraytoString(Integer[] arr) {
StringBuilder sb =new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1) {
sb.append(arr[i]).append("]");
}else {
sb.append(arr[i]).append(",");
}
}
return sb.toString();
}
}
对于TreeSet的接口比较`
public int compareTo(student s) {
int num =this.name.length()-s.name.length();
int num2=num==0?this.name.compareTo(s.name):num;
int num3=num2==0?this.age-s.age:num2;
return num3;
}
对于录入5个学生信息:
public static void main(String[] args) {
TreeSet<student> sc = new TreeSet<student>(new Comparator<student>() {
public int compare(student s1, student s2) {
int num =s1.getsum()-s2.getsum();
int num2=num==0?s1.getChinese()-s2.getChinese():num;
int num3=num2==0?s1.getEnglish()-s2.getEnglish():num2;
int num4=num3==0?s1.getMath()-s2.getMath():num3;
int num5=num4==0?s1.getName().compareTo(s2.getName()):num4;
return num5;
}
});
for(int x=1;x<=5;x++) {
Scanner s =new Scanner(System.in);
System.out.println("请输入"+x+"个学生的姓名");
String name = s.nextLine();
System.out.println("请输入"+x+"个学生的语文成绩");
String chineString= s.nextLine();
System.out.println("请输入"+x+"个学生的数学成绩");
String mathString = s.nextLine();
System.out.println("请输入"+x+"个学生的英语成绩");
String engString = s.nextLine();
student st = new student();
st.setName(name);
st.setChinese(Integer.parseInt(chineString));
st.setEnglish(Integer.parseInt(engString));
st.setMath(Integer.parseInt(mathString));
sc.add(st);
}
System.out.println("学生信息录入完毕");
System.out.println("学生成绩从高到低排如下");
System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩");
for(student i:sc) {
System.out.println(i.getName()+"\t"+i.getChinese()+"\t"+i.getMath()+"\t"+i.getEnglish());
}
}
} //student类
public class student {
private String name;
private int chinese;
private int math;
private int english;
public student() {
super();
// TODO Auto-generated constructor stub
}
public student(String name, int chinese, int math, int english) {
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getsum() {
return this.chinese+this.english+this.math;
}
}