-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problem34 sunny #19
Problem34 sunny #19
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
import java.util.ArrayList; | ||
import java.util.Arrays; | ||
import java.util.Comparator; | ||
|
||
public class ArrayListPractice { | ||
|
||
public static void main(String[] args) { | ||
|
||
// Array | ||
int[] odds = {1, 3, 5, 7, 9}; | ||
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; | ||
|
||
// String[] weeks = new String[]; -> compile error | ||
String[] weeks2 = new String[7]; | ||
weeks2[0] = "월"; | ||
weeks2[1] = "화"; | ||
weeks2[2] = "수"; | ||
weeks2[3] = "목"; | ||
weeks2[4] = "금"; | ||
weeks2[5] = "토"; | ||
weeks2[6] = "일"; | ||
|
||
// indexing | ||
System.out.println(weeks[3]); | ||
|
||
// length of array | ||
for (int i = 0; i < weeks.length; i++) { | ||
System.out.println(weeks[i]); | ||
} | ||
|
||
// ArrayIndexOutOfBoundsException | ||
// System.out.println(weeks[7]); | ||
|
||
// ArrayList | ||
ArrayList pitches = new ArrayList(); | ||
|
||
// add | ||
pitches.add("138"); | ||
pitches.add("129"); | ||
pitches.add("142"); | ||
pitches.add(0, "133"); | ||
pitches.add(2, "133"); | ||
|
||
// get | ||
System.out.println(pitches.get(1)); | ||
|
||
// size | ||
System.out.println(pitches.size()); | ||
|
||
// contains | ||
System.out.println(pitches.contains("142")); | ||
|
||
// remove | ||
System.out.println(pitches.remove("129")); | ||
System.out.println(pitches.remove(0)); | ||
|
||
// Generics | ||
// ArrayList<String> pitches2 = new ArraList<String>(); | ||
ArrayList<String> pitches2 = new ArrayList<>(); | ||
|
||
ArrayList pitches3 = new ArrayList(); | ||
pitches3.add("138"); | ||
pitches3.add("129"); | ||
String one = (String) pitches3.get(0); | ||
String two = (String) pitches3.get(1); | ||
|
||
ArrayList<String> pitches4 = new ArrayList<>(); | ||
pitches4.add("138"); | ||
pitches4.add("129"); | ||
String three = pitches4.get(0); | ||
String four = pitches4.get(1); | ||
|
||
// asList | ||
String[] data = {"138", "129", "142"}; | ||
ArrayList<String> pitches5 = new ArrayList<>(Arrays.asList(data)); | ||
System.out.println(pitches5); | ||
|
||
ArrayList<String> pitches6 = new ArrayList<>(Arrays.asList("138", "129", "142")); | ||
System.out.println(pitches6); | ||
|
||
// String.join | ||
String result = String.join(",", pitches6); | ||
System.out.println(result); | ||
|
||
String result2 = String.join(",", data); | ||
System.out.println(result2); | ||
|
||
// sort | ||
pitches6.sort(Comparator.naturalOrder()); | ||
System.out.println(pitches6); | ||
} | ||
} | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
import java.util.ArrayList; | ||
import java.util.Arrays; | ||
import java.util.List; | ||
|
||
public class CastingFinalPractice { | ||
|
||
public static void main(String[] args) { | ||
|
||
// String to Integer | ||
String num1 = "123"; | ||
int n1 = Integer.parseInt(num1); | ||
System.out.println(n1); | ||
|
||
// Integer to String | ||
int n2 = 123; | ||
String num2 = "" + n2; | ||
System.out.println(num2); | ||
|
||
int n3 = 123; | ||
String num3 = String.valueOf(n3); | ||
String num4 = Integer.toString(n3); | ||
System.out.println(num3); | ||
System.out.println(num4); | ||
|
||
// String to Float | ||
String num5 = "123.456"; | ||
double d = Double.parseDouble(num5); | ||
System.out.println(d); | ||
|
||
// Integer to Float | ||
int n4 = 123; | ||
double d1 = n4; | ||
System.out.println(d1); | ||
|
||
// Float to Integer | ||
double d2 = 123.456; | ||
int n5 = (int) d2; | ||
System.out.println(n5); | ||
|
||
// NumberFormatException Error | ||
/* | ||
String num = "123.456; | ||
int n = Integer.parseInt(num); | ||
*/ | ||
|
||
// Final | ||
final int n6 = 123; | ||
// n6 = 456; -> Compile Error | ||
|
||
// Final List | ||
final ArrayList<String> a = new ArrayList<>(Arrays.asList("a", "b")); | ||
// a = new ArrayList<>(Arrays.asList("c", "d")); -> Compile Error | ||
|
||
// List.of | ||
final List<String> b = List.of("a", "b"); | ||
a.add("c"); | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 위의 코드 패치를 간단히 검토해 드리겠습니다.
// String to Integer
String num = "123";
int n = Integer.parseInt(num);
System.out.println(n);
일반적으로 보면서 변경할 사항은 없으며, 주의할 점과 버그 위험이 위에 언급된 두 가지입니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
public class EnumPractice { | ||
|
||
enum CoffeeType { | ||
AMERICANO, | ||
ICE_AMERICANO, | ||
CAFE_LATE | ||
} | ||
|
||
; | ||
|
||
public static void main(String[] args) { | ||
|
||
System.out.println(CoffeeType.AMERICANO); | ||
System.out.println(CoffeeType.ICE_AMERICANO); | ||
System.out.println(CoffeeType.CAFE_LATE); | ||
|
||
// for loop | ||
for (CoffeeType type : CoffeeType.values()) { | ||
System.out.println(type); | ||
} | ||
|
||
// Why use Enum | ||
/* | ||
int countSellCoffee(int type){ | ||
... | ||
} | ||
int americano = countSellCoffee(1); | ||
int result = countSellCoffee(99); -> error | ||
|
||
int countSellCoffee(CoffeeType type){ | ||
... | ||
} | ||
int americano = countSellCoffee(CoffeeType.AMERICANO); | ||
*/ | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치는 EnumPractice 클래스를 정의하고, CoffeeType이라는 열거형을 포함합니다. 아래는 코드의 간단한 검토입니다:
코드 자체에 버그는 보이지 않으며, 코드의 목적과 일치하는 기능을 수행합니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
import java.util.ArrayList; | ||
import java.util.HashMap; | ||
import java.util.List; | ||
|
||
public class MapPractice { | ||
|
||
public static void main(String[] args) { | ||
|
||
// HashMap | ||
// put | ||
HashMap<String, String> map = new HashMap<>(); | ||
map.put("people", "사람"); | ||
map.put("baseball", "야구"); | ||
|
||
// get | ||
System.out.println(map.get("people")); | ||
System.out.println(map.get("java")); | ||
System.out.println(map.getOrDefault("java", "자바")); | ||
|
||
// containsKey | ||
System.out.println(map.containsKey("people")); | ||
|
||
// remove | ||
System.out.println(map.remove("people")); | ||
|
||
// size | ||
System.out.println(map.size()); | ||
|
||
// keySet | ||
System.out.println(map.keySet()); | ||
List<String> keyList = new ArrayList<>(map.keySet()); | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드는 Java에서 HashMap을 사용하는 예제입니다. 아래는 코드 리뷰와 개선 제안입니다:
버그 위험: 개선 제안:
위의 제안은 개선을 위한 참고 사항입니다. 실제 상황과 조직의 규칙에 따라 유동적으로 적용하십시오. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
import java.nio.file.FileSystemNotFoundException; | ||
|
||
public class NumBoolPractice { | ||
|
||
public static void main(String[] args) { | ||
|
||
// Integer | ||
int age = 10; | ||
long countOfstar = 8764827384923849L; | ||
|
||
// Float | ||
float pi = 3.14F; | ||
double morePi = 3.14159265358979323846; | ||
double d1 = 123.4; | ||
double d2 = 1.234e2; | ||
|
||
// Oct, Hex | ||
int octal = 023; // Decimal : 19 | ||
int hex = 0xC; // Decimal : 12 | ||
|
||
// Add, Subtract, Multiply, Divide | ||
int a = 10; | ||
int b = 5; | ||
System.out.println(a + b); // print 15 | ||
System.out.println(a - b); // print 5 | ||
System.out.println(a * b); // print 50 | ||
System.out.println(a / b); // print 2 | ||
System.out.println(7 % 3); // print 1 | ||
System.out.println(3 % 7); // print 3 | ||
|
||
// Increment, Decrement | ||
int i = 1; | ||
int j = 10; | ||
i++; | ||
j--; | ||
System.out.println(i); // print 1 | ||
System.out.println(j); // print 9 | ||
|
||
i = 0; | ||
System.out.println(i++); // print 0 | ||
System.out.println(i); // print 1 | ||
|
||
i = 0; | ||
System.out.println(++i); // print 1 | ||
System.out.println(i); // print 1 | ||
|
||
// Boolean | ||
boolean isSuccess = true; | ||
boolean isTest = false; | ||
|
||
// Boolean operation | ||
// 2 > 1 -> true | ||
// 1 == 2 -> false | ||
// 3 % 2 == 1 -> true | ||
// "3".equals("2") -> false | ||
|
||
// Conditional | ||
int base = 180; | ||
int height = 185; | ||
boolean isTall = height > base; | ||
|
||
if (isTall) { | ||
System.out.println("키가 큽니다."); // print 키가 큽니다. | ||
} | ||
|
||
i = 3; | ||
boolean isOdd = i % 2 == 1; | ||
System.out.println(isOdd); // print true | ||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드는 NumBoolPractice 클래스를 포함하는 패키지 Practice.sunny.Chapter3에서 실행됩니다. 주어진 코드는 정수, 부동 소수점, 논리형 변수 및 연산자들에 관련된 예제 코드입니다. 주요 점검 사항:
코드 리뷰 완료! |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package Practice.sunny.Chapter3; | ||
|
||
import java.util.Arrays; | ||
import java.util.HashSet; | ||
|
||
public class SetPractice { | ||
|
||
public static void main(String[] args) { | ||
|
||
// HashSet | ||
HashSet<String> set = new HashSet<>(Arrays.asList("H", "e", "l", "l", "o")); | ||
System.out.println(set); | ||
|
||
HashSet<Integer> s1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5, 6)); | ||
HashSet<Integer> s2 = new HashSet<>(Arrays.asList(4, 5, 6, 7, 8, 9)); | ||
|
||
// Intersection | ||
HashSet<Integer> intersection = new HashSet<>(s1); | ||
intersection.retainAll(s2); | ||
System.out.println(intersection); | ||
|
||
// Union | ||
HashSet<Integer> union = new HashSet<>(s1); | ||
union.addAll(s2); | ||
System.out.println(union); | ||
|
||
// Relative Complement | ||
HashSet<Integer> subtract = new HashSet<>(s1); | ||
subtract.removeAll(s2); | ||
System.out.println(subtract); | ||
|
||
// Add | ||
HashSet<String> set2 = new HashSet<>(); | ||
set2.add("Jump"); | ||
set2.add("to"); | ||
set2.add("Java"); | ||
System.out.println(set2); | ||
|
||
// AddAll | ||
HashSet<String> set3 = new HashSet<>(); | ||
set3.add("Jump"); | ||
set3.addAll(Arrays.asList("To", "Java")); | ||
System.out.println(set3); | ||
|
||
// Remove | ||
HashSet<String> set4 = new HashSet<>(); | ||
set4.remove("To"); | ||
System.out.println(set4); | ||
|
||
} | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 조각은
이 코드 조각에는 큰 문제는 없어 보입니다. 그러나 다음과 같은 몇 가지 개선 제안이 있습니다:
이외에는 큰 문제가 없어 보이며, 주어진 요구사항을 충족하는 기능을 제공하는 것으로 보입니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
위의 코드 패치에 대한 간단한 코드 리뷰를 도와드리겠습니다.
Generics 사용: ArrayList는 제네릭으로 선언하는 것이 좋습니다. ArrayList pitches의 경우 raw type인 ArrayList로 선언되어 있으므로, 제네릭을 사용하여 타입 안정성을 확보해야 합니다.
ArrayList 생성: ArrayList를 생성할 때, 제네릭으로 타입을 명시적으로 지정하는 것이 좋습니다. 예를 들어, ArrayList pitches = new ArrayList<>();와 같이 사용할 수 있습니다.
배열 인덱스 처리: 주의해야 할 부분은 weeks 배열의 경우, 7개의 요소를 가지며 인덱스는 0부터 6까지입니다. 따라서 weeks[7]과 같이 인덱스 7은 유효하지 않으므로 ArrayIndexOutOfBoundsException을 발생시킬 수 있습니다.
요소 추가 및 삭제: add() 메서드를 사용하여 요소를 추가하고 remove() 메서드를 사용하여 요소를 삭제하는 부분에서는 정상 작동합니다.
String.join(): String.join()을 통해 문자열을 조합하여 출력하는 부분은 올바르게 작성되었습니다.
Comparator.naturalOrder() 사용: pitches6.sort(Comparator.naturalOrder());와 같이 naturalOrder() 메서드를 사용하여 ArrayList를 정렬하는 부분은 문제가 없습니다.
각각의 개선 사항을 바탕으로 코드를 수정하면 더 안전하고 가독성이 좋은 코드를 작성할 수 있습니다.